【hdoj2545】树上战争
思路:
起初我没看懂题目是什么意思,百度不到,还是谷歌神呀~~~
搜到了一位大神的话,豁然开朗:主要思路是建树之后,看到达根节点的步数少谁就赢了。。。
本身觉得很有难度的一道题,被大神一点拨,瞬间变水题。。。
直接给出代码,有问题的地方欢迎留言^ ^
#include<iostream>using namespace std;int parent[100010];int find(int t){ int num=0;while(t!=parent[t]){ t=parent[t];num++;}return num;}void main(){ int n,m,a,b,x,y; while(scanf("%d %d",&n,&m),n|m) { for(int i=1;i<=n;i++) parent[i]=i; for(i=1;i<n;i++) { scanf("%d %d",&a,&b); parent[b]=a; } while(m--) { scanf("%d %d",&x,&y); if(find(x)<=find(y)) printf("lxh\n"); else printf("pfz\n"); } }}