模拟-CodeForces 370B
来源:互联网 发布:c# vsa javascript 编辑:程序博客网 时间:2024/05/21 09:18
题意:
给出玩的人数。
下面每个人有N 张牌, 1-...n牌的数字
判断是1->人数 这个人是否能赢:
获胜条件,在最优情况下,他是第一也是唯一出完所有牌的人
思路:
数据不大,模拟,每次报出当前要输出这个人的所有牌,再从所有人中搜索这张牌,加以标记,如果除他外有人的牌,都存在标记则NO
#include <iostream>#include <cstring>#include <string>#include <vector>#include <queue>#include <cstdio>#include <map>#include <cmath>#include <algorithm>#define INF 0x3f3f3f3f#define MAXN 100010using namespace std;int a[105][105];int cot[105];int visit[105][105];int n;int num[105];int solve(int x,int tp){ for(int i=1;i<=n;i++) { if(i==tp) continue; for(int j=1;j<=num[i];j++) { if(a[i][j]==x) { visit[i][j]=1; int k; for( k=1;k<=num[i];k++) { if(visit[i][k]!=1) { break; } } if(k==num[i]+1) { return 0; } } } } return 1;}int main(){ cin>>n; for(int i=1;i<=n;i++) { cin>>num[i]; for(int j=1;j<=num[i];j++) { int t; cin>>t; a[i][j]=t; cot[t]++; } } for(int i=1;i<=n;i++) { int j; memset(visit,0,sizeof(visit)); for( j=1;j<=num[i];j++) { if(cot[a[i][j]]!=1) { if(solve(a[i][j],i)==0) { break; } } } if(j==1+num[i]) { printf("YES\n"); } else printf("NO\n"); }}/*34 1 2 3 43 1 2 33 1 2 4*/
0 0
- 模拟-CodeForces 370B
- CodeForces 370 B.Berland Bingo(模拟)
- CodeForces 451B 模拟
- Codeforces 711B 【模拟】
- CodeForces 644B【模拟】
- Codeforces 745B (模拟)
- codeforces 676b 模拟
- CodeForces 448B 小模拟
- Codeforces 383B. Volcanoes 模拟
- Codeforces 490B - Queue (模拟)
- CodeForces 158 B. Taxi(模拟)
- codeforces 591B - Rebranding(模拟)
- CodeForces 339B (贪心模拟)
- CodeForces 626B:Cards【模拟】
- codeforces B. Processing Queries【模拟】
- CodeForces 670B(模拟)水题
- Codeforces 389B(十字模拟)
- CodeForces - 404B(模拟题)
- 2016ICPC青岛赛区网络赛 1001
- XStream: Java对象和XML之间相互转换的利器
- UML结构建模图———类或结构图
- leetcode---Construct Binary Tree from Inorder and Postorder Traversal
- HDU 5878 I Count Two Three (dfs+二分)
- 模拟-CodeForces 370B
- HDU 5878 I Count Two Three(2016亚洲区青岛站网络赛)
- 2016ICPC青岛赛区网络赛 1002
- 欢迎使用CSDN-markdown编辑器
- hdu5889 Barricade 最短路 + 最小割
- 常见错误提示
- UML结构建模图———部署图
- HDU 5878 I Count Two Three(打表)qingdao网赛
- cp命令复制目录 不覆盖