最大團數=最小色數
最大獨立集=最小團覆蓋
第一行兩個整數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)
網上一搜才找到是最大勢演算法(完美消除序列,弦圖問題),具體的核心思想參考乙個貼吧,但具體的還不是很懂。
#include #include#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
#pragma comment(linker, "/stck:1024000000,1024000000")
#define lowbit(x) (x&(-x))
#define max(x,y) (x>=y?x:y)
#define min(x,y) (x<=y?x:y)
#define max 100000000000000000
#define mod 1000
#define pi acos(-1.0)
#define ei exp(1)
#define pi 3.1415926535897932384626433832
#define ios() ios::sync_with_stdio(true)
#define inf 1044266558
#define mem(a) (memset(a,0,sizeof(a)))typedef
long
long
ll;vector
v[10006
];bool vis[10006
];int g[10006],n,m,d[10006],hash[10006],col[10006],x,y,cnt=0
;int
main()
memset(vis,
0,sizeof
(vis));
d[0]=-1
;
for(int i=n;i;i--)
for(int i=n;i;i--)
printf(
"%d\n
",cnt);
return0;
}
HNOI2008 神奇的國度
傳送門 好像是一道非常神仙的題 本題中具體的概念可以參見cdq大神的 弦圖與區間圖 我們直接來說吧。從這道題中的描述可以看出,由所有人向其認識的人連一條邊,構成的是一張標準的弦圖。而題目要求我們求出這張弦圖的最小染色數。有乙個非常重要的定理 對於一張弦圖,團數 色數 這個證明很難懂不過可以自己領會 ...
HNOI2008 神奇的國度
bzoj1006 這個題就是經典的最小點染色問題的模型。對於弦圖 題目中保證只有三角形,一定是弦圖 可以按其完美序列 乙個點的排列,使得每個點都是字尾的單純點 鄰居節點構成完全圖的點 逆序依次染色,即可求得最小染色。求完美序列可以用最大勢能法 mcs 演算法的過程為每次找出乙個勢能最大的點,放到當前...
HNOI2008 神奇的國度
第一行兩個整數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 這道題,嘿嘿.clj大神說染色問題貌似是np完全問題,話說np問題是神馬啊?...