1. 程式人生 > >並查集 [Scoi2010]遊戲

並查集 [Scoi2010]遊戲

問題 B: [Scoi2010]遊戲
時間限制: 1 Sec 記憶體限制: 128 MB
提交: 44 解決: 19
[提交][狀態][討論版]
題目描述
Description
lxhgww最近迷上了一款遊戲,在遊戲裡,他擁有很多的裝備,每種裝備都有2個屬性,這些屬性的值用[1,10000]之間的數表示。當他使用某種裝備時,他只能使用該裝備的某一個屬性。並且每種裝備最多隻能使用一次。 遊戲進行到最後,lxhgww遇到了終極boss,這個終極boss很奇怪,攻擊他的裝備所使用的屬性值必須從1開始連續遞增地攻擊,才能對boss產生傷害。也就是說一開始的時候,lxhgww只能使用某個屬性值為1的裝備攻擊boss,然後只能使用某個屬性值為2的裝備攻擊boss,然後只能使用某個屬性值為3的裝備攻擊boss……以此類推。 現在lxhgww想知道他最多能連續攻擊boss多少次?
Input
輸入的第一行是一個整數N,表示lxhgww擁有N種裝備 接下來N行,是對這N種裝備的描述,每行2個數字,表示第i種裝備的2個屬性值
Output
輸出一行,包括1個數字,表示lxhgww最多能連續攻擊的次數。
Sample Input
3
1 2
3 2
4 5
Sample Output
2
HINT
【資料範圍】
對於30%的資料,保證N < =1000
對於100%的資料,保證N < =1000000

事實證明,暴搜能過。。但正解是並查集。
我們來考慮把屬性做邊,武器做便。
如果一個聯通塊n是樹,則能滿足n-1個,
如果有環,則能滿足n個。
我們要把小值併到大值下面,因為優先滿足小值,才能滿足大值。
如果能構成一個環,整個聯通快就一定滿足。

#pragma GCC optimize("O3")
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int
n,m,f[10005],v[10005]; int find(int x){return f[x]==x?x:f[x]=find(f[x]);} int main() { scanf("%d",&n);m=min(n,10000)+1; for(int i=1;i<=m;i++)f[i]=i; int x,y; for(int i=1;i<=n;i++) { scanf("%d%d",&x,&y); int a=find(x),b=find(y); if(a==b)v[a]=1; else
{ if(a<b)swap(a,b); f[b]=a,v[b]=1; } } for(int i=1;i<=m;i++)if(!v[i]){cout<<i-1;break;} }

相關推薦

[Scoi2010]遊戲

問題 B: [Scoi2010]遊戲 時間限制: 1 Sec 記憶體限制: 128 MB 提交: 44 解決: 19 [提交][狀態][討論版] 題目描述 Description lxh

洛谷P1640 [SCOI2010]連續攻擊遊戲

return main blog scoi2010 clu amp std 來源 多少 [SCOI2010]連續攻擊遊戲 題目描述 lxhgww最近迷上了一款遊戲,在遊戲裏,他擁有很多的裝備,每種裝備都有2個屬性,這些屬性的值用[1,10000]之間的數表示。當他使用某種裝

BZOJ-1854-[Scoi2010]遊戲

isp 樹形結構 scanf for 數據 描述 ++ define day Description lxhgww最近迷上了一款遊戲,在遊戲裏,他擁有很多的裝備,每種裝備都有2個屬性,這些屬性的值用[1,10000]之間的數表示。當他使用某種裝備時,他只能使用該裝備的某一

SCOI2010」連續攻擊遊戲

題目傳送門 題解 巧妙的並查集做法。 把每個裝備的兩個屬性 a , b

BZOJ 1854 SCOI2010 遊戲 二分圖最大匹配/

題目大意:給定n個武器,每個武器有兩個屬性,只能使用其中一個,要求選擇一些武器 可以造成形如1 2 3 4的傷害 求最大傷害 題目大意我沒寫明白還是去看原題把QAQ 做法1: 同 1191 每個武器向兩個屬性連邊 然後從1~10000列舉屬性 跑二分圖最大匹配 無法匹配則輸

bzoj1854 [Scoi2010]遊戲 二分圖匹配

Description lxhgww最近迷上了一款遊戲,在遊戲裡,他擁有很多的裝備,每種裝備都有2個屬性,這些屬性的值用[1,10000]之間的數表示。當他使用某種裝備時,他只能使用該裝備的某一個屬性。並且每種裝備最多隻能使用一次。 遊戲進行到最後,lxh

[bzoj1854][Scoi2010]遊戲/二分圖最大匹配)

#include<cstdio> #include<algorithm> #include<cmath> #include<cstdlib> #i

BZOJ 1854: [Scoi2010]遊戲 【二分圖】【

Description lxhgww最近迷上了一款遊戲,在遊戲裡,他擁有很多的裝備,每種裝備都有2個屬性,這些屬性的值用[1,10000]之間的數表示。當他使用某種裝備時,他只能使用該裝備的某一個屬性。並且每種裝備最多隻能使用一次。 遊戲進行到最後,lxhgw

[bzoj1854][Scoi2010]遊戲】【貪心】

【題目描述】Descriptionlxhgww最近迷上了一款遊戲,在遊戲裡,他擁有很多的裝備,每種裝備都有2個屬性,這些屬性的值用[1,10000]之間的數表示。當他使用某種裝備時,他只能使用該裝備的某一個屬性。並且每種裝備最多隻能使用一次。 遊戲進行到最後,lxhgww遇到

[BZOJ 1455]羅馬遊戲(左偏樹+

node truct scrip logs wap find eap lib space Description 羅馬皇帝很喜歡玩殺人遊戲。 他的軍隊裏面有n個人,每個人都是一個獨立的團。最近舉行了一次平面幾何測試,每個人都得到了一個分數。 皇帝很喜歡平面幾何,他對那些得

【BZOJ 3376】[Usaco2004 Open]Cube Stacking 方塊遊戲 帶權

inline 記錄 cst cnblogs bsp tac bzoj 開始 scan 這道題一開始以為是平衡樹結果發現復雜度過不去,然後發現我們一直合並而且只是記錄到最低的距離,那麽就是帶權並查集了,帶權並查集的權一般是到根的距離,因為不算根要好打,不過還有一些其他的,具體

[bzoj1455]羅馬遊戲_左偏樹_

gen ++ round span 大根堆 -s || () CP 羅馬遊戲 bzoj-1455     題目大意:給你n個人,2種操作,m次操作:1.將i號士兵所在的集合的最小值刪除 2.合並i和j兩個士兵所在的團體     註釋:$1\le n\le 10^6$,$

【BZOJ 1854】【SCOI 2010】遊戲 & 二分圖匹配】

Description lxhgww最近迷上了一款遊戲,在遊戲裡,他擁有很多的裝備,每種裝備都有2個屬性,這些屬性的值用[1,10000]之間的數表示。當他使用某種裝備時,他只能使用該裝備的某一個屬性。並且每種裝備最多隻能使用一次。 遊戲進行到最後,lxhgw

POJ 1733【奇偶遊戲】(邊帶權擴展域)

前綴 oid pre 合並 none 相同 ans 滿足 closed 我們用sum數組來表示序列S的前綴和,那麽在每次的回答中: 1 S[l~r]有偶數個1,等價於sum[l-1]與sum[r]的奇偶性相同。 2 S[l~r]有偶數個1,等價於sum[l-1]與sum

poj 1182 (帶權)

ios int 查找 食物 spa script ble 距離 輸出 食物鏈 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 71361 Accepted: 21131 Des

BZOJ 4569 [Scoi2016]萌萌噠 ——ST表

oid include long long amp else n) div 每一個 並查集 好題。 ST表又叫做稀疏表,這裏利用了他的性質。 顯然每一個條件可以分成n個條件,顯然過不了。 然後發現有許多狀態是重復的,首先考慮線段樹,沒什麽卵用。 然後ST表,可以每一層表示對

1013. Battle Over Cities (25)(連通分量個數 、 )

mage conn pen view con input case scanf print It is vitally important to have all the cities connected by highways in a war. If a city is

HDU4126Genghis Khan the Conqueror(最小生成樹+)

mini info struct waiting other desc dfa tle ngs Genghis Khan the Conqueror Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 327

hdoj-1856-More is better【

sub ont max ash cer careful gin search std More is better Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 327680/102400 K (Java/Ot

【bzoj1015】【JSOI2008】【星球大戰】【+離線】

urn new span fin mar tdi mem 一次 esp Description 非常久曾經。在一個遙遠的星系,一個黑暗的帝國靠著它的超級武器統治者整個星系。某一天,憑著一個偶然的機遇,一支反抗軍摧毀了帝國的超級武器。並攻下了星系中差點兒全部的星球。這些