[Codeforces]Round246 div2 解题报告
2014-05-26 10:10
393 查看
这一场的还是在拼手速=——=
第一次上1600呢 纪念一下~
A. Choosing Teams
http://codeforces.com/contest/432/problem/A
刷榜题 统计小于等于5-k的人数的个数 结果除以3
B. Football Kit
http://codeforces.com/contest/432/problem/A
刷榜题 统计客场球衣别人主场球衣重复的次数,加到主场球衣次数中
C. Prime Swaps
http://codeforces.com/contest/432/problem/C 贪心,每次统计距离目标最近的素数。
D题暂时空,后缀数组还需掌握
E. Square Tiling
http://codeforces.com/contest/432/problem/E
比赛的时候没出这道题,贪心的方式错了,每次往外再染色一层点都要看是不是存在字典学更小的方案。
http://codeforces.com/contest/432/submission/6630816 WA在第六组
AC代码
第一次上1600呢 纪念一下~
A. Choosing Teams
http://codeforces.com/contest/432/problem/A
刷榜题 统计小于等于5-k的人数的个数 结果除以3
#include<cstdio> #include <cstring> #include <cmath> using namespace std; int i,o,p,j,k,l,n,m,a[100000],b[100000],ans; int main() { scanf("%d%d",&n,&k); memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); for (i=1;i<=n;i++) { scanf("%d",&a[i]); ++b[a[i]]; } ans=0; for (i=0;i<=5-k;i++) ans+=b[i]; printf("%d",ans/3); return 0; }
B. Football Kit
http://codeforces.com/contest/432/problem/A
刷榜题 统计客场球衣别人主场球衣重复的次数,加到主场球衣次数中
#include<cstdio> #include <cstring> #include <cmath> using namespace std; int i,o,p,j,k,l,n,m,a[100005],b[100005],d[100005],e[100005],c[100005],ans; int main() { scanf("%d",&n); memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); memset(d,0,sizeof(d)); memset(e,0,sizeof(e)); for (i=1;i<=n;i++) { scanf("%d",&a[i]); scanf("%d",&b[i]); } for (i=1;i<=n;i++) { ++c[a[i]]; } for (i=1;i<=n;i++) { d[i]=n-1; d[i]+=c[b[i]]; e[i]+=n-1-c[b[i]]; } for (i=1;i<=n;i++) { printf("%d %d\n",d[i],e[i]); } return 0; }
C. Prime Swaps
http://codeforces.com/contest/432/problem/C 贪心,每次统计距离目标最近的素数。
#include<cstdio> #include <cstring> #include <cmath> using namespace std; int i,o,p,j,k,l,n,m,a[100100],b[100100],d[100100],s[1000100][3],c[100100],ans; void swapi(int x,int y) { int t1,t2; t1=x; t2=y; d[b[x]]=t2; d[b[y]]=t1; m=b[x]; b[x]=b[y]; b[y]=m; } int main() { memset(a,0,sizeof(a)); p=o=0; a[1]=1; for (i=2;i<=100100;i++) if (!a[i]) { b[++o]=i; for (j=2*i;j<=100100;j+=i) a[j]=1; } scanf("%d",&n); o=1; a[1]=1; for (i=1;i<=100100;i++) { if (i>=(b[o+1]-1)) o++; a[i]=b[o]-1; } for (i=1;i<=n;i++) { scanf("%d",&b[i]); //b[i]=n+1-i; d[b[i]]=i; } for (i=1;i<=n;i++) { k=d[i]; while (k-i) { ans++; s[ans][1]=k-a[k-i]; s[ans][2]=k; swapi(s[ans][1],s[ans][2]); k-=a[k-i]; } } printf("%d\n",ans); for (i=1;i<=ans;i++) printf("%d %d\n",s[i][1],s[i][2]); return 0; }
D题暂时空,后缀数组还需掌握
E. Square Tiling
http://codeforces.com/contest/432/problem/E
比赛的时候没出这道题,贪心的方式错了,每次往外再染色一层点都要看是不是存在字典学更小的方案。
http://codeforces.com/contest/432/submission/6630816 WA在第六组
AC代码
#include <cstdio> #include <cmath> #include <cstring> #include <cstdlib> char a[105][105],b[305]; char backu(int x,int y,int h,char p) { char tmp; int i,j; for (tmp='A';tmp<='Z';tmp++) b[tmp]=0; b[p]=1; for (i=x;i<=x+h-1;i++) b[a[i][y-1]]=1; for (i=x;i<=x+h-1;i++) b[a[i][y+h]]=1; for (j=y;j<=y+h-1;j++) b[a[x-1][j]]=1; for (tmp='A';tmp<='Z';tmp++) if (b[tmp]==0)return tmp; } int main() { int i,n,t,m,j,k,ii,jj; char h; scanf("%d%d",&n,&m); for (i=0;i<=n+1;i++) for (j=0;j<=m+1;j++) a[i][j]='A'-1; for (i=1;i<=n;i++) for (j=1;j<=m;j++) if (a[i][j]=='A'-1) { for (k=1;(i+k-1<=n&&j+k-1<=m&&a[i+k-1][j]=='@'&&a[i][j+k-1]=='@');k++) {h=backu(i,j,k,'@'); if (h>backu(i,j+k-1,1,h)) break;} k-=1; h=backu(i,j,k,'@'); for (ii=i;ii<=i+k-1;ii++) for (jj=j;jj<=j+k-1;jj++) a[ii][jj]=h; // printf("%d %d %d %c\n",i,j,k,h); } for (i=1;i<=n;i++){ for (j=1;j<=m;j++) printf("%c",a[i][j]); printf("\n");} return 0; }
相关文章推荐
- [Codeforces]Round246 div2 解题报告
- codeforces_240_div1解题报告
- Codeforces 450(#257 (Div. 2) ) 解题报告
- [Codeforces] Round #249 (Div. 2)解题报告(ABC)
- Codeforces 410 div 2 【解题报告】
- Codeforces 486(#277 Div 2) 解题报告
- Codeforces 474(#271 Div 2) 解题报告
- codeforces_233_div2解题报告
- Codeforces 459(#261 (Div. 2) ) 解题报告
- codeforces 338(Div 2) B. Longtail Hedgehog 解题报告
- codeforces_229_div2解题报告
- Codeforces 471 Div2 B 解题报告
- Codeforces 467(#267 (Div. 2) ) 解题报告
- Codeforces 448(#256 (Div. 2) ) 解题报告
- Codeforces 441 (Div.1) 解题报告
- Codeforces 451(#258 (Div. 2) ) 解题报告
- codeforces_235_div2解题报告
- 【解题报告】Codeforces Round #367 (Div. 2)
- Codeforces Round #237 (Div. 2)B. Marathon解题报告
- 【解题报告】Codeforces Round #376 (Div. 2)