首页 > 代码库 > 【易爆物】 LA3644

【易爆物】 LA3644

【题目分析】

本题可以用图论解决,难点在于抽象出模型:就是如果产生易爆物品的话则必定在图里存在回路。

【AC代码】

#include<iostream>using namespace std;#define maxn 100009int pa[maxn];int findset(int x){    return pa[x]!=x?pa[x]=findset(pa[x]):x;}int main(){    int x,y;    for(int i=0;i<=maxn;i++)    pa[i]=i;    while(scanf("%d",&x)==1)    {        int refusal=0;        while(x!=-1)        {            scanf("%d",&y);             x=findset(x);y=findset(y);            if(x==y) refusal++;            else             pa[x]=y;            scanf("%d",&x);        }        printf("%d\n",refusal);    }   return 0;    }

 

【易爆物】 LA3644