日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

codeforces#254DIV2解题报告

發(fā)布時間:2025/5/22 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 codeforces#254DIV2解题报告 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天簡直大爆發(fā)啊。。。

吃了頓燒烤竟然這么管事。

。。

本弱渣竟然做出來了3道,并且B題是我第一次在CF中用到算法。。(曾經(jīng)最多也就是貪心。

)。

題目地址:codeforces#225

A題:

水題。。

不解釋。。

5分鐘1Y。

代碼例如以下:

#include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <ctype.h> #include<algorithm>using namespace std; int main() {int n, m, i, j;char s[200][200];scanf("%d%d",&n,&m);for(i=0;i<n;i++){scanf("%s",s[i]);}for(i=0;i<n;i++){for(j=0;j<m;j++){if(s[i][j]=='-'){printf("-");continue ;}if((i+j)%2){printf("B");}elseprintf("W");}printf("\n");}return 0; }
B題:

這題第一次在CF中使用算法,剛開始還猶豫了一段時間,由于沒見過在B題中就用到算法的,后來還是大膽的用上了。

并且還是并查集。。這題就是把能夠反應(yīng)的藥品用并查集放在一塊,這樣分成了能夠互不反應(yīng)的幾個集合。這種話,最少不能反應(yīng)的就是每一個集合放進去的第一個,剩下的就是最多能夠發(fā)生反應(yīng)的藥品數(shù)量。把數(shù)量求出來。如果是n,再求2^n就可以。

注意要用int64,第一次由于這個錯了一次。

。不然就能進前100了。。。

sad。

代碼例如以下:

#include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <ctype.h> #include<algorithm>using namespace std; int bin[100]; int find1(int x) {return bin[x]==x?

x:bin[x]=find1(bin[x]); } void merge1(int x, int y) { int f1, f2; f1=find1(x); f2=find1(y); if(f1!=f2) { if(f2>f1) bin[f2]=f1; else bin[f1]=f2; } } int main() { int n, m, i, j, a[100], x, y, b[100], z, num, nn; __int64 s=1; scanf("%d%d",&n,&m); memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); for(i=1;i<=n;i++) bin[i]=i; num=0; nn=0; while(m--) { scanf("%d%d",&x,&y); merge1(x,y); a[x]++; a[y]++; } for(i=1;i<=n;i++) { if(a[i]) { z=find1(i); b[z]++; num++; } } for(i=1;i<=n;i++) { if(b[i]) { nn++; } } z=num-nn; //printf("%d %d\n",num,nn); for(i=1;i<=z;i++) { s*=2; } printf("%I64d\n",s); return 0; }


C題:

這題還是非常有意思的。。

第一次看完以為是什么最大密度子圖。由于近期刷網(wǎng)絡(luò)流,網(wǎng)絡(luò)流的最小割能夠求最大密度子圖,可是還沒學(xué)。。。。我還百度看了一會兒。

。后來想到能夠貪心,先把兩個點與相連的邊值之比的最大值求出來,然后依次向外擴充,這樣肯定可行,可是感覺非常麻煩。。并且復(fù)雜度有點懸。

。。但還是硬著頭皮寫了。然后當(dāng)寫完最大的那一邊二點的值時。突然發(fā)現(xiàn)再往后擴充肯定越來越小。

。。然后自己YY了一下證明。。這樣是能夠證明的,于是果斷提交。1Y~

代碼例如以下:

#include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <ctype.h> #include<algorithm>using namespace std; int main() {int n, m, i, p[600], u, v, w;double max1=0, x;scanf("%d%d",&n,&m);for(i=1;i<=n;i++)scanf("%d",&p[i]);while(m--){scanf("%d%d%d",&u, &v,&w);x=(p[u]+p[v])*1.0/w;if(max1<x){max1=x;}}printf("%.15lf\n",max1);return 0; }


總結(jié)

以上是生活随笔為你收集整理的codeforces#254DIV2解题报告的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。