time limit: 1 sec
memory limit: 128 mb
submit: 345
solved: 78
submit
status
web board
晴天也來尋寶啦,有乙個m層的寶塔,只能從第一層開始一層一層的往上走,每層都有乙個門,你需要用鑰匙來開啟門才能繼續走,現在晴天有n把鑰匙,編號為0-n-1,然後他要開始尋寶了。沒有特殊技能怎麼好意思出來尋寶呢,他現在有兩個天賦技能,他知道第i層的門可以用編號為a和b的鑰匙開啟(可能a等於b呦),然後他還可以在進入寶塔前把門的順序任意調換一次,也就是說比如可以把m層原來的1 2 3 ..m,換為 m ...3 2 1.晴天想知道他最多能拿到多少層的寶物。
第一行乙個整數t表示有多少組測試例項
每組資料第一行為兩個整數n,m分別表示有多少個鑰匙,有多少層。
接下來m行,每行兩個數字x,y,第i行表示第i層的門可以用標號x或y的鑰匙開啟。
(n,m<=1000)
輸出乙個整數表示最多可以上多少層。1
3 4
0 1
0 1
0 1
1 23
在樣例中,在進入寶塔前,將門的順序換為4 1 2 3.然後前三層分別使用2 0 1三把鑰匙拿到前三層的寶物
**1:(省時間,省記憶體)memory : 924 ,time :11
#include#include#include#includeusing namespace std;
const int m=1010;
vectorvec[m];
int mark[m];
bool vis[m];
bool find(int u)
//vec[i].push_back(x);
//vec[i].push_back(y);
} for(i=0;i<=n;i++)
int ans=0;
for(i=1;i<=m;i++)
printf("%d\n",ans);
} return 0;
}
**2:(費時,費空間)
memory : 4860 ,time :140
#include#include#includeusing namespace std;
int map[1010][1010];
int match[1010];
bool vis[1010];
int n,m;
bool find(int u)
{ for(int i=0;i
P1918 保齡球 (簡單二分)
dl 算緣分算得很煩悶,所以常常到體育館去打保齡球解悶。因為他保齡球已經打了幾十年了,所以技術上不成問題,於是他就想玩點新花招。dl 的視力真的很不錯,竟然能夠數清楚在他前方十公尺左右每個位置的瓶子的數量。他突然發現這是乙個炫耀自己好視力的藉口 他看清遠方瓶子的個數後從某個位置發球,這樣就能打倒一定...
ZZULIOJ 1152 二分搜尋
在有序序列中查詢某一元素x。首先輸入乙個正整數n n 100000 表示該序列有n個整數,然後按從小到大的順序輸入n個整數 接著是乙個正整數m,表示有m次查詢 最後是m個整數,表示m個要查詢的整數x。對於每一次查詢,有一行輸出。若序列中存在要查詢的元素x,則輸出元素x在序列中的序號 序號從0開始 若...
zzulioj1152 二分搜尋
zzulioj1152 二分搜尋 在有序序列中查詢某一元素x。首先輸入乙個正整數n n 100000 表示該序列有n個整數,然後按從小到大的順序輸入n個整數 接著是乙個正整數m,表示有m次查詢 最後是m個整數,表示m個要查詢的整數x。對於每一次查詢,有一行輸出。若序列中存在要查詢的元素x,則輸出元素...