題目:洛谷p1640。
題目大意:有n件裝備,每件裝備有兩個屬性,且只能用一次,用一種屬性。
現在有乙個boss,第i次對boss進行攻擊要用屬性為i的裝備。
問這些裝備最多能連續攻擊boss幾次?
解題思路:二分圖匹配。對裝備k的兩個屬性i,j,將i和j向k連一條邊。
然後從1開始進行匈牙利演算法,遇到第一次匹配失敗跳出,此時匹配成功的次數就是答案。
c++ code:
#include#include#includeint n,head[1000005],f[1000005];bool vis[1000005];
struct edgee[2000005];
inline int readint()
bool match(int u)
} }return false;
}int main();
head[x]=cnt;
x=readint();
e[++cnt]=(edge);
head[x]=cnt;
} memset(f,0,sizeof f);
int i;
for(i=1;;++i)
printf("%d\n",i-1);
return 0;
}
SCOI2010 連續攻擊遊戲
原題鏈結 抱歉有點事要忙只能引用了 這道題正解是用二分圖,但是做完這道題的第二題才講 所以我採用的我當時會的做法 並查集。我們每有乙個 a,b 時我們可以把它當做一條邊 a,b 然後對於構圖之後,乙個大小為k聯通塊,我們發現有如下性質 如果這個聯通塊沒有環 樹 因為有k 1條邊,那麼總有方法使其中的...
SCOI2010 連續攻擊遊戲
題目 description lxhgww最近迷上了一款遊戲,在遊戲裡,他擁有很多的裝備,每種裝備都有2個屬性,這些屬性的值用 1,10000 之間的數表示。當他使用某種裝備時,他只能使用該裝備的某乙個屬性。並且每種裝備最多只能使用一次。遊戲進行到最後,lxhgww遇到了終極boss,這個終極bos...
SCOI2010 連續攻擊遊戲
這道題是乙個二分圖匹配問題。如果第 i 件裝備的屬性值為 j 將裝備 i 連邊到屬性值 j 注意裝備結點 屬性值結點 然後從 1 到 10000 跑二分圖匹配,判斷該點是否能被匹配。直到不能匹配為止。1 include 2 3using namespace std 45 define re regi...