codeforces 405 C. Unusual Product and E. Graph Cutting (异或规律 & 搜索)
#include #include using namespace std;int m[1010][1010];int main(){ //freopen("cin.txt","r",stdin); int n,q; while(cin>>n){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ scanf("%d",&m[i][j]); } } int ans=0,sum=0; for(int i=1;i<=n;i++){ sum=0; for(int j=1;j<=n;j++){ sum+=m[i][j]*m[j][i]; } if(sum&1) ans+=1; } if(ans&1) ans=1; else ans=0; scanf("%d",&q); int q1,q2,order=0; for(int i=0;i#include #include #include using namespace std;const int N=1e5+10;struct node{ int u,v,next;}edge[N*2];int head[N*2],cnt;bool vis[N*2];void add(int a,int b){ edge[cnt].u=a; edge[cnt].v=b; edge[cnt].next=head[a]; head[a]=cnt++;}int dfs(int p1,int p2){ queue vec; for(int i=head[p1];i>-1;i=edge[i].next){ int t=edge[i].v; if(vis[i] || t==p2) continue; vis[i]=vis[i^1]=1; int g=dfs(t,p1); if(g){ printf("%d %d %d\n",p1,t,g); } else vec.push(t); } while(vec.size()>=2){ int t1=vec.front(); vec.pop(); int t2=vec.front(); vec.pop(); printf("%d %d %d\n",t1,p1,t2); } if(vec.size()>0){ int r=vec.front(); vec.pop(); return r; } return 0;}int main(){ //freopen("cin.txt","r",stdin); int n,m; while(cin>>n>>m){ memset(head,-1,sizeof(head)); memset(vis,0,sizeof(vis)); cnt=0; int a,b; for(int i=0;i
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~