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 |
抄到ZJT的代码#include<cstdio> #include<cstring> #include<vector> #include<stack> #define NOT(x) (x>n?x-n:x+n) #define INF 0x7FFFFFFF #define MAXN 2100 #define min(x,y) (x<y?x:y) using namespace std; vector<int> s[MAXN]; int nodeStack[MAXN]; bool visit[MAXN]={0},inStack[MAXN]={0}; int time=0; int d[MAXN],low[MAXN]; int belong[MAXN]; int n,m; int index=0; int sum=1; void dfs(int); void addEdge(int x,int y) { s[x].push_back(y); } int main() { while(~scanf("%d%d",&n,&m)) { for(int i=1;i<=n;i++) { s[i].clear(); s[NOT(i)].clear(); } time=0; index=0; memset(visit,0,sizeof visit); memset(inStack,0,sizeof inStack); memset(nodeStack,0,sizeof nodeStack); memset(d,0,sizeof d); memset(low,0,sizeof low); memset(belong,0,sizeof belong); sum=1; while(m--) { char s1='+',s2='+'; int t1,t2; scanf("%d%d",&t1,&t2); if(t1<0) { t1=-t1; s1='-'; } if(t2<0) { t2=-t2; s2='-'; } if(s1=='+' && s2=='+') { addEdge(NOT(t1),t2); addEdge(NOT(t2),t1); } if(s1=='-' && s2=='-') { addEdge(t1,NOT(t2)); addEdge(t2,NOT(t1)); } if(s1=='+' && s2=='-') { addEdge(NOT(t1),NOT(t2)); addEdge(t2,t1); } if(s1=='-' && s2=='+') { addEdge(t1,t2); addEdge(NOT(t2),NOT(t1)); } } for(int i=1;i<=n;i++) if(!visit[i]) dfs(i); for(int i=1;i<=n;i++) if(!visit[NOT(i)]) dfs(NOT(i)); bool check=1; for(int i=1;i<=n;i++) if(belong[i] && belong[i]==belong[NOT(i)]) { printf("0\n"); check=0; break; } if(check) printf("1\n"); } return 0; } void dfs(int cur) { visit[cur]=1; low[cur]=d[cur]=++time; nodeStack[++index]=cur; inStack[cur]=1; for(int i=0;i<s[cur].size();i++) { int v=s[cur].at(i); if(!visit[v]) { dfs(v); low[cur]=min(low[cur],low[v]); }else if(inStack[v]) low[cur]=min(low[cur],d[v]); } if(d[cur]==low[cur]) { while(nodeStack[index]!=cur) { belong[nodeStack[index]]=sum; index--; inStack[nodeStack[index]]=0; } belong[cur]=sum; index--; inStack[cur]=0; sum++; } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator