CodeForces Round 300 我是煞笔!

代码。。能力。。为何。。这么。。弱。。

英语。。为何。。这么。。渣。。

前期打的非常顺,在1个小时的时候甚至到了200+名,然而。。我为何这么弱

A.Cutting Banner

 我看错了题意,然而却A掉了,一个串只能切一次,后来Hack+4也是靠的这个

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<algorithm>
 4 using namespace std;
 5 char s[1005],t[1005],y[1005];
 6 int main()
 7 {
 8   int i,len,tmp,j,k,x;
 9   scanf("%s",s);
10   strcpy(t,"CODEFORCES");
11   if (strcmp(s,t)==0){printf("YES\n"); return 0; }
12   len=strlen(s);
13   for (i=0;i<len;i++)
14     for (j=i;j<len;j++)
15     {
16       x=-1;
17       for (k=0;k<len;k++)
18         if (k<i||k>j) y[++x]=s[k];
19       y[x+1]='\0';
20       if (strcmp(y,t)==0){printf("YES\n"); return 0; }
21     }
22   printf("NO\n");
23   return 0;
24 }
View Code

B.Quasi Binary

 很快想到是能拿1则拿1,最多其实就是n里面最大的值

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<algorithm>
 4 using namespace std;
 5 int a[115];
 6 int main()
 7 {
 8   int n,i,maxx,cnt,j;
 9   scanf("%d",&n);
10   cnt=maxx=0;
11   while (n){
12     a[++cnt]=n%10;
13     maxx=max(maxx,n%10);
14     n/=10;
15   }
16   printf("%d\n",maxx);
17   for (i=1;i<=maxx;i++){
18     while (a[cnt]==0) cnt--;
19     for (j=cnt;j>=1;j--){
20       if (a[j]>0){ printf("1"); a[j]--; }
21       else printf("0");
22     }
23     printf(" ");
24   }
25 }
View Code

C.Tourist's Notes

 和CF之前一场题目类似,本来想计算的,看到10^8,果断无压力跑100+ms

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<algorithm>
 4 using namespace std;
 5 struct dian{
 6   int id,h;
 7 }a[100005];
 8 int cmp(dian n1,dian n2)
 9 {
10   return n1.id<n2.id;
11 }
12 int main()
13 {
14   int n,m,i,maxx,mid,j;
15   scanf("%d%d",&n,&m);
16   for (i=1;i<=m;i++)
17     scanf("%d%d",&a[i].id,&a[i].h);
18   maxx=0;
19   sort(a+1,a+m+1,cmp);
20   maxx=max(maxx,a[1].id-1+a[1].h);
21   maxx=max(maxx,n-a[m].id+a[m].h);
22   for (i=1;i<m;i++)
23   {
24     mid=(a[i+1].id+a[i].id)/2;
25     if ((a[i].h+(a[i+1].id-a[i].id)<a[i+1].h)||
26         (a[i+1].h+(a[i+1].id-a[i].id)<a[i].h)) {
27       printf("IMPOSSIBLE\n");
28       return 0;
29     }
30     for (j=a[i].id;j<=a[i+1].id;j++)
31     maxx=max(maxx,min(a[i].h+(j-a[i].id),
32                       a[i+1].h+(a[i+1].id-j)));
33   }
34   printf("%d\n",maxx);
35 }
View Code

D.Weird Chess

 打完ABC还剩一个多小时。。

 D看题意看了半个小时。。

 想到以大图点都符合来跑,将不符合的去掉,再看看是否覆盖完了,然而==

 然而,手速慢的跟狗一样,在59s的时候交了一发,wa1.。

 YES没有输出=====

 不过还好,赛后重交了还有RE,数组开小了===

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<algorithm>
 4 using namespace std;
 5 struct dian{
 6   int x,y;
 7 }a[11005],b[11005],c[11005];
 8 int vis[10005],mp[105][105];
 9 char s[105][105];
10 int main()
11 {
12   int i,j,c1,c2,c3,n,tx,ty;
13   scanf("%d",&n);
14   for (i=0;i<n;i++)
15     scanf("%s",s[i]);
16   c1=c2=c3=0;
17   for (i=0;i<n;i++)
18     for (j=0;j<n;j++)
19       if (s[i][j]=='o'){
20         b[++c2].x=i;
21         b[c2].y=j;
22       }
23   for (i=1;i<2*n;i++)
24     for (j=1;j<2*n;j++){
25       c[++c3].x=i;
26       c[c3].y=j;
27     }
28   memset(vis,0,sizeof(vis));
29   for (i=1;i<=c2;i++)
30   {
31     for (j=1;j<=c3;j++)
32     {
33       tx=b[i].x-(n-c[j].x);
34       ty=b[i].y-(n-c[j].y);
35       if (tx<0||tx>=n||ty<0||ty>=n) continue;
36       if (s[tx][ty]!='.') continue;
37       vis[j]=1;
38     }
39   }
40   memset(mp,0,sizeof(mp));
41   for (i=1;i<=c2;i++)
42   {
43     for (j=1;j<=c3;j++)
44     {
45       tx=b[i].x-(n-c[j].x);
46       ty=b[i].y-(n-c[j].y);
47       if (tx<0||tx>=n||ty<0||ty>=n) continue;
48       if (vis[j]==1) continue;
49       mp[tx][ty]=1;
50     }
51   }
52   for (i=0;i<n;i++)
53     for (j=0;j<n;j++)
54       if (s[i][j]=='x'&&mp[i][j]==0) {printf("NO\n"); 
55         return 0; }
56   printf("YES\n");
57   memset(mp,0,sizeof(mp));
58   for (i=1;i<=c3;i++)
59     if (vis[i]==0) mp[c[i].x][c[i].y]=1;
60   for (i=1;i<2*n;i++){
61     for (j=1;j<2*n;j++)
62         if (i==n&&j==n) printf("o");
63       else if (mp[i][j]==1) printf("x");
64       else printf(".");
65     printf("\n");
66   }
67   return 0;
68 }
View Code

 艹,又降了!!!!

posted on 2015-04-27 03:23  xiao_xin  阅读(587)  评论(0编辑  收藏  举报

导航