BZOJ 1006 HNOI2008 神奇的國度

2022-05-16 03:17:24 字數 1167 閱讀 2243

第一行兩個整數n,m。1<=n<=10000,1<=m<=1000000.表示有n個人,m對認識關係. 接下來m行每行輸入一對朋

友輸出乙個整數,最少可以分多少隊

4 51 2

1 42 4

2 33 4

3一種方案(1,3)(2)(4)

我們把每個人都看做乙個點,認識關係看做一條邊,那麼,「最少分多少支隊」就是圖的最小染色數。

我們知道,一般圖的染色數是npc問題,但是由於題目中的「禁止四邊關係」等,可以發現其沒有長度大於3的無弦環。

那麼,這就是在求弦圖的染色,直接套mcs演算法按完美消除序列逆序染色即可。

具體細節請參照 陳丹琦 《弦圖與區間圖》

附**:

#include #include #include #include const int n = 10050;

const int m = 1050000;

struct nodenodes[m];

int cnt;

int pre[n], to[m * 2], nxt[m * 2];

int head[n];

int f[n], p[n];

bool vis[n];

int n, m;

inline void add(int h, int v)

void mcs()

x = nodes[x].v;

vis[p[j] = x] = 1;

for (i = pre[x]; ~i; i = nxt[i])

break;

}}int cnt2;

inline void addedge(int u, int v)

inline int readint() while (isdigit(c));

return ans;

}int mark[n], color[n];

int main()

mcs();

memset(color, 0, sizeof color);

memset(mark, 0, sizeof mark);

int ans = 0;

for (int j = n; j; --j)

printf("%d\n", ans);

return 0;

}

狡猾的商人 bzoj1202,HNOI2005

ac通道 分析 因為每月的總收入可以為正,也可以為負,所以要比較兩個區間是否相符,當且僅當它們邊界都相同時才能比較。我們設w i 表示第1 i個月的總收入與第1 fa i 1 個月的總收入之差,及第fa i i個月的總收入。如圖。若i 1,j在同乙個集合中,則第i j個月的總收入為w j w i 1...

bzoj1006 hnoi2008 神奇的國度

time limit 20 sec memory limit 162 mb submit 2379 solved 1074 submit status discuss 第一行兩個整數n,m。1 n 10000,1 m 1000000.表示有n個人,m對認識關係.接下來m行每行輸入一對朋友 輸出乙個整...

BZOJ1006 HNOI2008 神奇的國度

time limit 20 sec memory limit 162 mb submit 3217 solved 1446 submit status discuss k國是乙個熱衷三角形的國度,連人的交往也只喜歡三角原則.他們認為三角關係 即ab相互認識,bc相互認識,ca 相互認識,是簡潔高效的...