[BZOJ]1242: Zju1015 Fishing Net弦图判定
2017-05-15 19:51
337 查看
弦图判定,题目没有骗你
#include <cstdio> using namespace std; #define F(x) (x+1+n) inline int max(int a,int b) { return a>b?a:b; } inline char tc(void) { static char fl[10000],*A=fl,*B=fl; return A==B?B=(A=fl)+fread(fl,1,10000,stdin),A==B?EOF:*A++:*A++; } inline int read(void) { int a=0,f=1;static char c; while((c=tc())<'0'||c>'9')c=='-'?f=-1:0; while(c>='0'&&c<='9') a=a*10+c-'0',c=tc(); return a*f; } struct Edge { int to; Edge *next; }edge[2002010],*link[2010]; int n,m,cnt,que[1010],t,w[1010],f[1010],v,best; bool vis[1010],b[1010][1010]; int main(void) { register int i,j,x,y; n=read(),m=read(); for (i=1;i<=m;++i) x=read(),y=read(),b[x][y]=b[y][x]=1, edge[++cnt].to=y,edge[cnt].next=link[x],link[x]=&edge[cnt], edge[++cnt].to=x,edge[cnt].next=link[y],link[y]=&edge[cnt]; for (i=1;i<=n;++i) edge[++cnt].to=i,edge[cnt].next=link[n+1],link[n+1]=&edge[cnt]; for (i=n;i;--i) { while(1) { v=0; for (Edge *k=link[F(best)];k&&!v;k=k->next) { if(!vis[k->to]) v=k->to; else link[F(best)]=k->next; } if(v) { vis[v]=1,que[i]=v; for (Edge *k=link[v];k;k=k->next) if(!vis[k->to]) ++f[k->to],edge[++cnt].to=k->to,edge[cnt].next=link[F(f[k->to])],link[F(f[k->to])]=&edge[cnt],best=max(best,f[k->to]); break; } else --best; } } for (int i=1;i<=n;i++) w[que[i]]=i; for (i=n;i;--i) { t=n+1; for (Edge *k=link[que[i]];k;k=k->next) if(w[k->to]>i&&w[k->to]<t) t=w[k->to]; if(t==n+1) continue; for (Edge *k=link[que[i]];k;k=k->next) if(w[k->to]>t) if(!b[que[t]][k->to]) return puts("Imperfect"),0; } puts("Perfect"); return 0; }
相关文章推荐
- [BZOJ1242][Zju1015 Fishing Net弦图判定][完美消除序列]
- [BZOJ1242][Zju1015][弦图判定]Fishing Net弦图判定
- [bzoj] 1242: Zju1015 Fishing Net弦图判定
- bzoj 1242: Zju1015 Fishing Net 弦图判定
- bzoj 1242 Zju1015 Fishing Net 弦图判定
- [bzoj1242] Zju1015 Fishing Net弦图判定
- bzoj1242: Zju1015 Fishing Net弦图判定
- ZOJ 1015 Fishing Net(弦图判定)
- [弦图判定 完美消除序列 MCS算法] BZOJ 1242 Zju1015 Fishing Net弦图判定
- 弦图ZOJ 1015 Fishing Net 判定方法
- bzoj 1242 弦图判定 MCS
- ZOJ 1015 Fishing Net(弦图判定)
- ZOJ 1015 Fishing Net(判断弦图)
- ●BZOJ 1006 [HNOI2008]神奇的国度(弦图最小染色数)○ZOJ 1015 Fishing Net
- zoj-1015-fishing net 【弦图的判断】
- ZOJ 1015 Fishing Net 弦图MCS
- [BZOJ1242]Fishing Net
- ZOJ 1015 弦图判定
- ZOJ 1015-Fishing Net(判断弦图)
- [ZOJ1015]Fishing Net-弦图判断