BZOJ 1854 遊戲(並查集)

2021-08-04 02:28:23 字數 1223 閱讀 9647

time limit: 5 sec  

memory limit: 162 mb

submit: 5258  

solved: 2098 [

submit][

status][

discuss]

lxhgww最近迷上了一款遊戲,在遊戲裡,他擁有很多的裝備,每種裝備都有2個屬性,這些屬性的值用[1,10000]之間的數表示。當他使用某種裝備時,他只能使用該裝備的某乙個屬性。並且每種裝備最多只能使用一次。 遊戲進行到最後,lxhgww遇到了終極boss,這個終極boss很奇怪,攻擊他的裝備所使用的屬性值必須從1開始連續遞增地攻擊,才能對boss產生傷害。也就是說一開始的時候,lxhgww只能使用某個屬性值為1的裝備攻擊boss,然後只能使用某個屬性值為2的裝備攻擊boss,然後只能使用某個屬性值為3的裝備攻擊boss……以此類推。 現在lxhgww想知道他最多能連續攻擊boss多少次?

輸入的第一行是乙個整數n,表示lxhgww擁有n種裝備 接下來n行,是對這n種裝備的描述,每行2個數字,表示第i種裝備的2個屬性值

輸出一行,包括1個數字,表示lxhgww最多能連續攻擊的次數。

31 2

3 24 5

2【資料範圍】

對於30%的資料,保證n < =1000

對於100%的資料,保證n < =1000000

source

把每乙個裝備考慮成一條邊,它的兩個屬性考慮成邊兩端點的編號。使用裝備相當於刪除這條邊。

於是可以發現如果某連通塊圖中有環,那麼環上的點必定都可以取到。如果是樹結構,讓編號最大的取不到即可。

#include#include#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

#define inf 10000000

#define maxn 10005

#define eps 1e-10

int flag[maxn],parent[maxn];

int find(int x)

int main(void)

else

flag[t2]=1;

} for(i=1;i<=maxn;i++)

if(flag[i]==0)

return 0;

}

1854 Scoi2010 遊戲 並查集

time limit 5 sec memory limit 162 mb submit 4938 solved 1948 submit status discuss lxhgww最近迷上了一款遊戲,在遊戲裡,他擁有很多的裝備,每種裝備都有2個屬性,這些屬性的值用 1,10000 之間的數表示。當他使...

格仔遊戲 並查集

格仔遊戲題目 思路 若能夠形成自環,則兩點在連線之前屬於同乙個集合。並查集裸題,不過需要把二維狀態下座標對映到一維,這裡用乙個cnt不斷自增來對映,也可以將x,y從0開始a x y n x y 如下 include using namespace std const int n 210 int n,...

格仔遊戲(並查集)

alice和bob玩了乙個古老的遊戲 首先畫乙個 n n n n 的點陣 下圖 n 3 n 3 接著,他們兩個輪流在相鄰的點之間畫上紅邊和藍邊 直到圍成乙個封閉的圈 面積不必為 1 1 1 為止,封圈 的那個人就是贏家。因為棋盤實在是太大了,他們的遊戲實在是太長了!他們甚至在遊戲中都不知道誰贏得了遊...