HDU---6029 Graph Theory 【二分图匹配思想相关运用】

来源:互联网 发布:android数据存储方式 编辑:程序博客网 时间:2024/06/05 20:43

传送门
是一道水题,前提能读懂题!

有许多点,操作从第二点开始,每个点都有以下两个操作
1: 把当前点与前面所有的点相连
2: 不对当前点做任何操作.

问在最后的这些边的集合中,能否选择一些边,使得这些边没有公共的点,且所有的点都被这些边所覆盖.
题都读懂了,就好做了赛

#include<cstdio>using namespace std;int main(){    int t;    scanf("%d",&t);    while(t--){        int n;        int res=1;   //表示当前没有被覆盖的点.        scanf("%d",&n);        for(int i=2;i<=n;i++){            int u;            scanf("%d",&u);            if(u==2 || res==0)   //注意当res等于0时,res要++,因为是从最后的边中选择一些边,所以可以把3当做是//没有被覆盖的(因为就算3的操作为1,它与1,2点连的边,我们也不会去选!),在之后是可以认为可以再次覆盖它的!!!                res++;            else                res--;        }        if(res==0)            printf("Yes\n");        else            printf("No\n");    }}