Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
求改错 wa着呢#include<cstdio> #include<cstring> #include<vector> using namespace std; vector <int> block[1001]; int n,m; int tot=1,index=1,color[1011]; bool Stack[1011],attend[1011]; bool map[1011][1011]; int dfn[1011],low[1011]; int S1[1011],S2[1011],top1,top2; int min(const int &a,const int &b) { return a>b?b:a; } void push(int *stack,int &top,int data) { stack[++top]=data; } void tarjan(int id,int fa) { dfn[id]=low[id]=index++; push(S1,top1,id); Stack[id]=1; for(int i=1;i<=n;i++) { if(map[id][i]==0) continue; if(!dfn[i]) { tarjan(i,id); if(low[i]>=dfn[id]) { while(1) { int tmp=S1[top1]; top1--; Stack[tmp]=0; block[tot].push_back(tmp); if(tmp==i) break; } block[tot++].push_back(id); } low[id]=min(low[id],low[i]); } else if(i!=fa) { low[id]=min(low[id],dfn[i]); } } } bool dfs(int *p,int start,int Color,int fa) { if(color[start]!=Color) return true; color[start]=Color; for(int i=1;i<=n;i++) { if(map[i][start] && p[i] && i!=fa) return dfs(p,i,3-Color,start); } return false; } void paint(int i) { int p[1001],start,size=block[i].size(); memset(p,0,sizeof(p)); if(size<3) return ; while(!block[i].empty()) { p[block[i].back()]=1; start=block[i].back(); block[i].pop_back(); } if(dfs(p,start,1,-1) && size>=3) { for(int i=1;i<=1000;i++) attend[i]=(p[i]|attend[i]); } } int main() { while(1) { top1=top2=-1; index=tot=1; memset(low,0,sizeof(low)); memset(dfn,0,sizeof(dfn)); memset(Stack,0,sizeof(Stack)); memset(attend,0,sizeof(attend)); memset(map,1,sizeof(map)); scanf("%d %d",&n,&m); for(int i=0;i<=n;i++) map[i][i]=0; if(n==0 && m==0) break; for(int i=0;i<m;i++) { int x,y; scanf("%d %d",&x,&y); map[x][y]=map[y][x]=0; } for(int i=1;i<=n;i++) if(!dfn[i]) tarjan(i,1); int res=0; for(int i=1;i<tot;i++) { paint(i); block[i].clear(); } for(int i=1;i<=n;i++) if(!attend[i]) res++; printf("%d\n",res); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator