poj食物链,经典带权并查集

来源:互联网 发布:软件开发里程碑计划 编辑:程序博客网 时间:2024/04/29 11:15

题目描述

动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。A 吃 B,B

吃 C,C 吃 A。

现有 N 个动物,以 1 - N 编号。每个动物都是 A,B,C 中的一种,但是我们并不知道

它到底是哪一种。

有人用两种说法对这 N 个动物所构成的食物链关系进行描述:

第一种说法是“1 X Y”,表示 X 和 Y 是同类。

第二种说法是“2 X Y”,表示 X 吃 Y 。

此人对 N 个动物,用上述两种说法,一句接一句地说出 K 句话,这 K 句话有的是真

的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则就是真话。

• 当前的话与前面的某些真的话冲突,就是假话

• 当前的话中 X 或 Y 比 N 大,就是假话

• 当前的话表示 X 吃 X,就是假话

你的任务是根据给定的 N 和 K 句话,输出假话的总数。

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <string>#include <cmath>#include <cstdlib>#include <vector>#include <queue>#include <set>#include <map>using namespace std;typedef long long ll; const int maxn=1e5+10;int fa[maxn],rnk[maxn];//rnk点与根的关系int n,k;void init(int x){    for(int a=0;a<=x;a++){        fa[a]=a;        rnk[a]=0;    }}int findfa(int x){   if(fa[x]==x)       return x;   else{       int mid=fa[x];       fa[x]=findfa(fa[x]);//压缩       rnk[x]=(rnk[x]+rnk[mid])%3;//节点与根的关系     rnk[mid]是mid与根结点的关系       return fa[x];//第二个rnk[x]是当前的点到压缩前的根的关系,rnk【mid】是之前的根到当前的根的关系,两者相加即为当前的点到当前的根的关系   }}void merge(int r,int x,int y){    int fx=findfa(x);    int fy=findfa(y);    if(fx!=fy){        fa[fx]=fy;        rnk[fx]=(rnk[y]-rnk[x]+r+3)%3;    }}bool check(int a,int b,int c){    if (b>n||c>n||b<1||c<1) {        return false;    }    if(a==1&&b==c)        return false;    int fb=findfa(b);    int fc=findfa(c);    if(fb==fc)        return  a==(rnk[b]-rnk[c]%3+3)%3;    else        return true;}int main(){    int ans = 0;    scanf("%d %d",&n,&k);    init(n);    for (int a=0; a<k; a++) {        int o,p,q;        cin>>o>>p>>q;        o--;        if(check(o,p,q))            merge(o,p,q);        else            ans++;    }    printf("%d\n",ans);    return 0;}

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一碗水摆平 摆拍 摆拍什么意思 摆拍姿势 摆拍图片 创意团队摆拍照片 照相摆拍姿势 如何摆姿势拍照片好看 拍婚纱照怎么摆动作 男生怎么拍照片摆姿势好看 摆拍造型 男士摆拍姿势 怎么拍照片摆姿势好看 照相姿势摆拍图片 摆拍照片 裤子摆拍 男生拍照片的摆造型 拍婚纱照如何摆姿势 抖音主播教室摆拍 运垃圾进公园摆拍 亲子走秀造型摆拍 摆拳 散打摆拳 摆拳动作要领 摆摊小吃 摆摊好项目 摆摊图片 摆摊技巧 摆摊早餐 过年摆摊 摆摊折叠桌 摆摊创业 摆摊货 摆摊玩具 摆摊小商品 摆摊推车 农村摆摊 赶集摆摊 摆摊批发 摆摊小生意项目大全 小吃大全摆摊