標籤:codeforces acm
題目連結:http://codeforces.com/contest/445
解題報告:
俄國人今天不知道為什麼九點鐘就比賽了。只過了兩道題,第三題完全沒思路,有時間單獨去刷第三題吧,看起來很難
A - DZY Loves Chessboard
太水了。。。
直接W、B錯開填,順便先抹上“ - ” 就完了
#include <iostream>#include <cstdio>#include <cstring>using namespace std;char grid[120][120],ans[120][120];int main(){ int n,m,i,j; cin>>n>>m; for(i=0;i<n;i++) { scanf("%s",grid[i]); } for(i=0;i<n;i++) { for(j=0;j<m;j++) { if(grid[i][j] == '-') {ans[i][j] = '-'; continue;} if(i%2 == 0) { if(j%2 ==0) ans[i][j] = 'W'; else ans[i][j] = 'B'; } else { if(j%2 ==0) ans[i][j] = 'B'; else ans[i][j] = 'W'; } } } for(i=0;i<n;i++) printf("%s\n",ans[i]); return 0;}
B -DZY Loves Chemistry
並查集直接搞,答案是 2 的 (n - m)次冪。
n 是藥品種類數,m 是並查集並出來的集合的個數。
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;typedef unsigned long long ll;int arr[55];int find(int x){ return arr[x]==x?x:find(arr[x]);}void mer(int a,int b){ int fa,fb; fa=find(a); fb=find(b); if(fa!= fb) arr[fa]=fb;}ll p(int x,int y){ ll ans = 1; for(int i=1;i<=y;i++) ans *= x; return ans;}int main(){ int i,j,n,m,from,to; cin>>n>>m; for(i=1;i<=n;i++) arr[i] = i; while(m--) { scanf("%d%d",&from,&to); mer(from,to); } //for(i=1;i<=n;i++) cout<<arr[i]<<" "; cout<<endl; int t=0; for(i=1;i<=n;i++) { if(arr[i]==i) t++; } ll ans = p(2,n-t); cout<<ans<<endl; return 0;}
C - DZY Loves Physics
去看這道題的AC代碼了,,,我擦,,,不該放棄這題的。。。
哈哈哈。。捶地笑,,,其實就是。
只剩兩個點了!!!!!!!!!!!!!!!!!!!
不信你拿這個代碼去試第三組資料,發現沒有!
int main(){ freopen("input.txt","r",stdin); int n,m,c,from,to,i; cin>>n>>m; for(i=1;i<=n;i++) cin>>val[i]; while(m--) { cin>>from>>to>>c; cout<<(val[from]+val[to])/c<<endl; } return 0;}
完整的AC代碼如下:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;double val[550];int main(){ //freopen("input.txt","r",stdin); int n,m,c,from,to,i; cin>>n>>m; for(i=1;i<=n;i++) cin>>val[i]; double ans = 0; while(m--) { cin>>from>>to>>c; ans = max(ans,(val[from]+val[to])/c); } printf("%.12f\n",ans); return 0;}