日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

【洛谷P2024】食物链

發(fā)布時(shí)間:2023/11/27 生活经验 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【洛谷P2024】食物链 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目描述

動(dòng)物王國(guó)中有三類(lèi)動(dòng)物 A,B,C,這三類(lèi)動(dòng)物的食物鏈構(gòu)成了有趣的環(huán)形。A 吃 B,B

吃 C,C 吃 A。

現(xiàn)有 N 個(gè)動(dòng)物,以 1 - N 編號(hào)。每個(gè)動(dòng)物都是 A,B,C 中的一種,但是我們并不知道

它到底是哪一種。

有人用兩種說(shuō)法對(duì)這 N 個(gè)動(dòng)物所構(gòu)成的食物鏈關(guān)系進(jìn)行描述:

第一種說(shuō)法是“1 X Y”,表示 X 和 Y 是同類(lèi)。

第二種說(shuō)法是“2 X Y”,表示 X 吃 Y 。

此人對(duì) N 個(gè)動(dòng)物,用上述兩種說(shuō)法,一句接一句地說(shuō)出 K 句話(huà),這 K 句話(huà)有的是真

的,有的是假的。當(dāng)一句話(huà)滿(mǎn)足下列三條之一時(shí),這句話(huà)就是假話(huà),否則就是真話(huà)。

? 當(dāng)前的話(huà)與前面的某些真的話(huà)沖突,就是假話(huà)

? 當(dāng)前的話(huà)中 X 或 Y 比 N 大,就是假話(huà)

? 當(dāng)前的話(huà)表示 X 吃 X,就是假話(huà)

你的任務(wù)是根據(jù)給定的 N 和 K 句話(huà),輸出假話(huà)的總數(shù)。

輸入輸出格式

輸入格式:

從 eat.in 中輸入數(shù)據(jù)

第一行兩個(gè)整數(shù),N,K,表示有 N 個(gè)動(dòng)物,K 句話(huà)。

第二行開(kāi)始每行一句話(huà)(按照題目要求,見(jiàn)樣例)

輸出格式:

輸出到 eat.out 中

一行,一個(gè)整數(shù),表示假話(huà)的總數(shù)。

輸入輸出樣例

輸入樣例#1:
100 7
1 101 1
2 1 2
2 2 3
2 3 3
1 1 3
2 3 1
1 5 5
輸出樣例#1:
3

說(shuō)明

1 ≤ N ≤ 5 ? 10^4

1 ≤ K ≤ 10^5

分析

知識(shí)點(diǎn):并查集。

由關(guān)押罪犯的2個(gè)集合變成了3個(gè)集合。不會(huì)做的話(huà)可以先去做關(guān)押罪犯。

代碼

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=50000+5;
inline int read()
{int x=0,f=1; char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1; ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();}return x*f;
}
int n,k,ans;
int father[maxn*3];
inline int find(int x)
{if(x!=father[x]) father[x]=find(father[x]);return father[x];
}
inline void merge(int x,int y)
{int r1=find(x);int r2=find(y);father[r1]=r2;
}
int main()
{n=read();k=read();for(int i=1;i<=n*3;i++) father[i]=i;for(int i=1;i<=k;i++){int p,x,y;p=read();x=read();y=read();if(x>n||y>n){ans++; continue;}if(p==1){if(find(x+n)==find(y)||find(x+n*2)==find(y)){ans++; continue;}merge(x,y);merge(x+n,y+n);merge(x+n*2,y+n*2);}else if(p==2){if(find(x+2*n)==find(y)||find(x)==find(y)){ans++; continue;}merge(x+n,y);merge(y+2*n,x);merge(y+n,x+2*n);}}printf("%d\n",ans);return 0;
}

?

轉(zhuǎn)載于:https://www.cnblogs.com/huihao/p/7618123.html

總結(jié)

以上是生活随笔為你收集整理的【洛谷P2024】食物链的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。