2017河工大校赛补题CGH and 赛后小结

网页设计课上实在无聊,便开始补题,发现比赛时候僵着的东西突然相通了不少

首先,“追妹”这题,两个队友讨论半天,分好多种情况最后放弃(可是我连题目都没看啊),今天看了之后试试是不是直接判断情况就可以,于是出现

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int T,n,m,a,b,u,v,i,flag;   
 5     scanf("%d",&T);
 6     while(T--)
 7     {
 8         flag=0;
 9         scanf("%d%d%d%d",&n,&m,&a,&b);
10         for(i=1;i<=m;i++)
11         {
12             scanf("%d%d",&u,&v);
13             if(u==a&&v==b  ||  u==b&&v==a)  flag=1;
14         }
15         if(flag)  printf("chhappy\n");
16         else      printf("chsad\n");
17     }
18     return 0;
19 }
View Code

这样的1A,噗...............喷血,这个不多说当时没看题,遗憾遗憾。
Next,“最大子段和”,我发4, 5个小时比赛3人起码在这上面花了2.5个小时,结果依旧没A。太傻了各自,当时怎么就没想过for循环跑的时候 i+=2 ,唉,无奈,居然会如此给A

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 #define maxn 100005
 7 int num[maxn];
 8 int main()
 9 {
10     int t,n,sum;
11     cin>>t;
12     while(t--)
13     {
14         cin>>n;
15         for(int i=1;i<=n;i++)  cin>>num[i];
16         int ans=num[1],sum=num[1]; 
17         for(int i=2;i<n;i+=2) 
18         {
19             sum+=(num[i]+num[i+1]);
20             sum=max(sum,num[i+1]);
21             ans=max(ans,sum);
22         }
23         sum=num[2];
24         for(int i=3;i<n;i+=2)
25         {
26             sum+=(num[i]+num[i+1]);
27             sum=max(sum,num[i+1]);
28             ans=max(ans,sum);
29         }
30         cout<<ans<<endl;
31     }
32     return 0;
33 }
View Code

最后那个宝石题,开局时候队友看了之后没思路不想做,导致全程只有我一个人写这题,当时觉得这题很水,就是魔力值更新就可以了,于是讲个队花听,队花不停恩哦恩哦,结果我发现自己不知道怎么不断更新,然后队花就去和主代码手继续聊BFS去了。手撸这题时候想用排序更新一下,希望数据比较弱水过去,结果WA了,55555555555....今天灵感突现用这种方法来循环更新,结果过了,蠢哭自己

 1 #include <iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 #define maxn 100005
 5 int a[maxn],b[maxn],c[maxn],AA[maxn];
 6 int main()
 7 {
 8     ios::sync_with_stdio(false);
 9     int t,n,m;
10     cin>>t;
11     while(t--)
12     {
13         cin>>n>>m;
14         int flag=1;
15         for(int i=1; i<=n; i++)  cin>>AA[i];
16         for(int i=1; i<=m; i++)
17         {
18             cin>>a[i]>>b[i]>>c[i];
19             AA[c[i]]=min(AA[c[i]], AA[a[i]]+ AA[b[i]]);
20         }
21         while(flag)
22         {
23             flag=0;
24             for(int i=1; i<=m; i++)
25                 if(AA[c[i]]> AA[a[i]]+ AA[b[i]])
26                 {
27                     flag=1;
28                     AA[c[i]]= AA[a[i]]+ AA[b[i]];
29                 }
30         }
31         for(int i=1; i<=n; i++)  printf("%d%c",AA[i],i==n?'\n':' ');
32     }
33     return 0;
34 }
View Code

赛后来波小结,毕竟贵圈的传统就是你做出来的题目就全是SB题。

  热身赛B题英文题轻松翻译,但题意一边是没输入,一边是两个样例,什么鬼,导致被队友质疑英语水平,开局不利(PS:恩爱狗,热身赛时候两个人在那讲高数,笑声不断,可怜的我承担着AK热身赛题的任务)..正式比赛题意都很简单,主代码手想的都太复杂(还好前2个水题全程都是自己单撸A的),想的复杂的结果就是都没A掉,近乎打铁。数学题第一次没写出来,数学公式推导了半个小时,庞大的计算量,结果出来的公式错了,很伤,很影响士气。其他都不想说,这场比赛前的Codeforces等了快2周,本想趁机涨分,结果熬夜撸代码时候发现忘了报名没法提交.当天下午BNU校赛恰好时间撞车,不过见到格格本人也算一个额外惊喜吧。总之,一次不错的ACM比赛体验,下次会狠狠地再来...

posted on 2017-04-24 12:22  欲儿很轻狂  阅读(182)  评论(3)    收藏  举报

导航