POJ 2912 Rochambeau
来源:互联网 发布:安卓 软件灰度 编辑:程序博客网 时间:2024/06/08 09:05
题目链接:Rochambeau
题意:一群孩子分成三组玩石头剪刀布,在某一组中的孩子只能出和其组对应的手势,其中有一个人是裁判,裁判可以任意出,问能否在给定的游戏场景中找到裁判并输出对应的信息。
题解:由于
#include <stdio.h>#include <string.h>#include <iostream>using namespace std;const int N = 505*3;int f[N];int Find(int x){ int r=x; while(f[x]!=x) x=f[x]; f[r]=x; return x;}void Merge(int x,int y){ x=Find(x); y=Find(y); if(x!=y) f[x]=y;}struct RCB{ int x,y; char op;}r[2005];int ans[505];int main(){ int n,m; while(scanf("%d %d",&n,&m)==2){ for(int i=1;i<=m;i++) scanf("%d%c%d",&r[i].x,&r[i].op,&r[i].y); memset(ans,-1,sizeof ans); int cnt=0,mx=0,ps=0; for(int i=0;i<n;i++){ for(int j=0;j<=3*n;j++) f[j]=j; for(int j=1;j<=m;j++) if(r[j].x!=i&&r[j].y!=i){ if(r[j].op=='>'){ if(Find(r[j].x)==Find(r[j].y)|| Find(r[j].x+n)==Find(r[j].y)){ ans[i]=j; break; } Merge(r[j].x,r[j].y+n); Merge(r[j].x+n,r[j].y+2*n); Merge(r[j].x+2*n,r[j].y); }else if(r[j].op=='='){ if(Find(r[j].x)==Find(r[j].y+2*n)|| Find(r[j].x)==Find(r[j].y+n)){ ans[i]=j; break; } Merge(r[j].x,r[j].y); Merge(r[j].x+n,r[j].y+n); Merge(r[j].x+2*n,r[j].y+2*n); }else{ if(Find(r[j].x)==Find(r[j].y)|| Find(r[j].x)==Find(r[j].y+n)){ ans[i]=j; break; } Merge(r[j].x,r[j].y+2*n); Merge(r[j].x+n,r[j].y); Merge(r[j].x+2*n,r[j].y+n); } } cnt+=(ans[i]==-1?1:0); ps=(ans[i]==-1?i:ps); if(mx<ans[i]) mx=ans[i]; } if(cnt==1) printf("Player %d can be determined to be the judge after %d lines\n",ps,mx); else if(cnt==0) puts("Impossible"); else puts("Can not determine"); } return 0;}
阅读全文
0 0
- poj 2912 Rochambeau
- poj 2912 Rochambeau
- poj 2912 Rochambeau
- POJ 2912 Rochambeau
- POJ 2912 Rochambeau
- poj 2912 Rochambeau
- poj 2912 rochambeau
- poj 2912 Rochambeau
- poj 2912 Rochambeau
- 【35.53%】【POJ 2912】Rochambeau
- POJ 2912 Rochambeau
- poj 2912 Rochambeau 解题思路
- 7.4 C POJ 2912Rochambeau
- poj 2912 - Rochambeau(并查集)
- poj 2912 Rochambeau(暴力+并查集)
- Poj-2912 Rochambeau 枚举+并查集
- POJ 2912 Rochambeau 并查集+枚举
- POJ-2912-Rochambeau [并查集][枚举]
- 深入浅出BP(BackPropagation)反向传播算法
- cublas无法解析的外部符号
- C/C++对象的序列化
- JS中this的几种使用方式
- mysql:备份、还原
- POJ 2912 Rochambeau
- 使用UDP方式进行传输数据
- 复习java_2
- 在Android里完美实现基站和WIFI定位
- HDU
- 究竟什么是Http请求头
- requestAnimationFrame()请求动画帧的兼容IE9及以下写法
- Java直接内存分配和释放方式
- notify和notifyall的区别(代码展示)