在BNU上做了几次比赛后,也有了点感觉。
BCF是三道水题,从出题的情况也可以看出。
眼疾手快落了个前排。用时1.5个小时。之后,就一直在想E题,其实第一次提交的就是E题,直接一个WA,就想到,肯定没有那么简单。果断换题,靠,看来脑子很清醒。
E题,越想,越像博弈。后来想了一个小时,也没有想出来,期间又想到,可能是dp,我已在手动模拟出前几组数据,就是得不出结果。但是,我有感觉,应该不难。
终于,还有半个小时,还没有,正确的思路可写。就很不舍的去看了其他题。
A题。这道题,和同学交流后,这就一水题,没有想到,这么简单。
思路就是:主要统计一下,度为1的个数就好,一个作为起点,另一个作为终点。但是,自己一开始想的是可能的欧拉回路一类的,就放弃了,没有再深入的想。
对于图论,我想,画一下图,看一下性质,可能会好一点吧。可能会发现一些意想不到的结果。
代码:
#include <cstdio> #include <cstring> const int N=1004; int Degree[N]; int main(){ int n; while(~scanf("%d",&n)){ if(n==1) { printf("1\n"); continue; } memset(Degree,0,sizeof(Degree)); for(int i=1;i<n;i++){ int a,b; scanf("%d%d",&a,&b); Degree[a]++; Degree[b]++; } int num=0; for(int i=1;i<=n;i++) if(Degree[i]==1) num++; printf("%d\n",(num+1)/2); } return 0; }
E题,有人做出来了。果断学习。