SCOI2010 連續攻擊遊戲

2022-03-25 18:50:57 字數 1075 閱讀 2263

這道題是乙個二分圖匹配問題。如果第$i$件裝備的屬性值為$j$,將裝備$i$連邊到屬性值$j$(注意裝備結點$≠$屬性值結點)。

然後從$1$到$10000$跑二分圖匹配,判斷該點是否能被匹配。直到不能匹配為止。

1 #include 2

3using

namespace

std;45

#define re register

6#define rep(i, a, b) for (re int i = a; i <= b; ++i)

7#define repd(i, a, b) for (re int i = a; i >= b; --i)

8#define maxx(a, b) a = max(a, b);

9#define minn(a, b) a = min(a, b);

10#define ll long long

11#define inf (1 << 30)

1213 inline int

read()

1920

const

int maxn = 1e6 + 5, maxm = 1e4 + 5;21

22struct

edge ;

2526

struct

graph

34void add(int u, int

v) ;

36 g[u] =m;37}

38int

vis[maxn], lk[maxn];

39bool dfs(int u, int

t) 48}49

return

false;50

}51inthungarian()

56return

10000;57

}58} g;

5960

intn;

6162

intmain()

70 printf("%d"

, g.hungarian());

7172

return0;

73 }

SCOI2010 連續攻擊遊戲

原題鏈結 抱歉有點事要忙只能引用了 這道題正解是用二分圖,但是做完這道題的第二題才講 所以我採用的我當時會的做法 並查集。我們每有乙個 a,b 時我們可以把它當做一條邊 a,b 然後對於構圖之後,乙個大小為k聯通塊,我們發現有如下性質 如果這個聯通塊沒有環 樹 因為有k 1條邊,那麼總有方法使其中的...

SCOI2010 連續攻擊遊戲

題目 description lxhgww最近迷上了一款遊戲,在遊戲裡,他擁有很多的裝備,每種裝備都有2個屬性,這些屬性的值用 1,10000 之間的數表示。當他使用某種裝備時,他只能使用該裝備的某乙個屬性。並且每種裝備最多只能使用一次。遊戲進行到最後,lxhgww遇到了終極boss,這個終極bos...

SCOI2010 連續攻擊遊戲

lxhgww最近迷上了一款遊戲,在遊戲裡,他擁有很多的裝備,每種裝備都有2個屬性,這些屬性的值用 1,10000 之間的數表示。當他使用某種裝備時,他只能使用該裝備的某乙個屬性。並且每種裝備最多只能使用一次。遊戲進行到最後,lxhgww遇到了終極boss,這個終極boss很奇怪,攻擊他的裝備所使用的...