BZOJ1006: [HNOI2008]神奇的国度

题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1006

题解:这题应该是留的最久的一个坑了吧。。。今天终于A掉了。。。但还是没有完全理解的感觉。

代码:

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<cmath>
 4 #include<cstring>
 5 #include<algorithm>
 6 #include<iostream>
 7 #include<vector>
 8 #include<map>
 9 #include<set>
10 #include<queue>
11 #include<string>
12 #include<bitset>
13 #define inf 1000000000
14 #define maxn 2000000+5
15 #define maxm 10000000
16 #define eps 1e-10
17 #define ll long long
18 #define pa pair<int,int>
19 #define for0(i,n) for(int i=0;i<=(n);i++)
20 #define for1(i,n) for(int i=1;i<=(n);i++)
21 #define for2(i,x,y) for(int i=(x);i<=(y);i++)
22 #define for3(i,x,y) for(int i=(x);i>=(y);i--)
23 #define for4(i,x) for(int i=head[x],y=e[i].go;i;i=e[i].next,y=e[i].go)
24 #define mod 1000000007
25 #define lch k<<1,l,mid
26 #define rch k<<1|1,mid+1,r
27 using namespace std;
28 inline int read()
29 {
30     int x=0,f=1;char ch=getchar();
31     while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();}
32     while(ch>=‘0‘&&ch<=‘9‘){x=10*x+ch-‘0‘;ch=getchar();}
33     return x*f;
34 }
35 int n,m,tot,head[maxn],id[maxn],pos[maxn],v[maxn];
36 priority_queue<pa>q;
37 struct edge{int go,next;}e[maxn];
38 inline void add(int x,int y)
39 {
40     e[++tot]=(edge){y,head[x]};head[x]=tot;
41     e[++tot]=(edge){x,head[y]};head[y]=tot;
42 }
43 int main()
44 {
45     freopen("input.txt","r",stdin);
46     freopen("output.txt","w",stdout);
47     n=read();m=read();
48     for1(i,m)add(read(),read());
49     for1(i,n)q.push(pa(0,i));
50     for3(i,n,1)
51     {
52         while(id[q.top().second])q.pop();
53         int x=q.top().second;q.pop();
54         for4(j,x)if(!id[y])q.push(pa(++v[y],y));
55         id[x]=i;pos[i]=x;
56     }
57     int ans=1;
58     for1(i,n)
59     {
60         int tmp=0;
61         for4(j,i)if(id[y]>id[i])tmp++;
62         ans=max(ans,tmp+1);
63     }
64     cout<<ans<<endl;
65     return 0;
66 }

时间: 2024-10-12 19:36:08

BZOJ1006: [HNOI2008]神奇的国度的相关文章

[BZOJ1006] [HNOI2008] 神奇的国度 (弦图)

Description K国是一个热衷三角形的国度,连人的交往也只喜欢三角原则.他们认为三角关系:即AB相互认识,BC相互认识,CA相互认识,是简洁高效的.为了巩固三角关系,K国禁止四边关系,五边关系等等的存在.所谓N边关系,是指N个人 A1A2...An之间仅存在N对认识关系:(A1A2)(A2A3)...(AnA1),而没有其它认识关系.比如四边关系指ABCD四个人 AB,BC,CD,DA相互认识,而AC,BD不认识.全民比赛时,为了防止做弊,规定任意一对相互认识的人不得在一队,国王相知道,

【bzoj1006】[HNOI2008]神奇的国度

1006: [HNOI2008]神奇的国度 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 3114  Solved: 1401[Submit][Status][Discuss] Description K国是一个热衷三角形的国度,连人的交往也只喜欢三角原则.他们认为三角关系:即AB相互认识,BC相互认识,CA相互认识,是简洁高效的.为了巩固三角关系,K国禁止四边关系,五边关系等等的存在.所谓N边关系,是指N个人 A1A2...An之间仅存在N对认

BZOJ 1006: [HNOI2008]神奇的国度 弦图的最小染色问题

弦图的最小染色问题: 先求出完美消除序列,然后从后往前贪心染色 1006: [HNOI2008]神奇的国度 Time Limit: 20 Sec  Memory Limit: 162 MB Submit: 2245  Solved: 1006 [Submit][Status][Discuss] Description K国是一个热衷三角形的国度,连人的交往也只喜欢三角原则.他们认为三角关系:即AB相互认识,BC相互认识,CA相互认识,是简洁高效的.为了巩固三角关系,K国禁止四边关系,五边关系等等

bzoj 1006: [HNOI2008]神奇的国度 弦图的染色问题&amp;&amp;弦图的完美消除序列

1006: [HNOI2008]神奇的国度 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 1788  Solved: 775[Submit][Status] Description K国是一个热衷三角形的国度,连人的交往也只喜欢三角原则.他们认为三角关系:即AB相互认识,BC相互认识,CA相互认识,是简洁高效的.为了巩固三角关系,K国禁止四边关系,五边关系等等的存在.所谓N边关系,是指N个人 A1A2...An之间仅存在N对认识关系:(A1A2)

[HNOI2008]神奇的国度

1006: [HNOI2008]神奇的国度 Time Limit: 20 Sec  Memory Limit: 162 MB[Submit][Status][Discuss] Description K国是一个热衷三角形的国度,连人的交往也只喜欢三角原则.他们认为三角关系:即AB相互认识,BC相互认识,CA相互认识,是简洁高效的.为了巩固三角关系,K国禁止四边关系,五边关系等等的存在.所谓N边关系,是指N个人 A1A2...An之间仅存在N对认识关系:(A1A2)(A2A3)...(AnA1),

BZOJ 1006: [HNOI2008]神奇的国度( MCS )

弦图最小染色...先用MCS求出完美消除序列然后再暴力染色... ------------------------------------------------------------------------------------- #include<bits/stdc++.h> using namespace std; const int maxn = 10009; inline int read() { char c = getchar(); int ret = 0; for(; !i

bzoj 1006: [HNOI2008]神奇的国度 -- 弦图(最大势算法)

1006: [HNOI2008]神奇的国度 Time Limit: 20 Sec  Memory Limit: 162 MB Description K国是一个热衷三角形的国度,连人的交往也只喜欢三角原则.他们认为三角关系:即AB相互认识,BC相互认识,CA相互认识,是简洁高效的.为了巩固三角关系,K国禁止四边关系,五边关系等等的存在.所谓N边关系,是指N个人 A1A2...An之间仅存在N对认识关系:(A1A2)(A2A3)...(AnA1),而没有其它认识关系.比如四边关系指ABCD四个人

【BZOJ1006】神奇的国度(弦图)

[BZOJ1006]神奇的国度(弦图) 题面 BZOJ 题解 直接参考弦图的做法 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #include<set> #include<map> #include<vector> #includ

【bzoj1006】 HNOI2008—神奇的国度

http://www.lydsy.com/JudgeOnline/problem.php?id=1006 (题目链接) 题意 求弦图的最小染色数. Solution 弦图,详情参见论文. 这里我写的加堆的nlogn的,线性的用n个链表维护一下然后打标记删除就行了. 细节 Wa了2发.. 代码 // bzoj1006 #include<algorithm> #include<iostream> #include<cstdlib> #include<cstring&g