在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题,有人做出来了。果断学习。