uva10092
来源:互联网 发布:火女永恒矩阵 编辑:程序博客网 时间:2024/06/06 18:26
这题有多个解……
#include<cstdio>#include<cstring>#include<iostream>#include<queue>#include<vector>#include<cmath>#include<algorithm>using namespace std;const int N=1100;int line[N][N];int nx[N];int girl[N],used[N];int m,n,t;bool found(int x){ for(int i=1; i<=t; i++) { if(line[x][i]&&!used[i]) { used[i]=1; if(girl[i]==0||found(girl[i])) { girl[i]=x; return 1; } } } return 0;}int main(){ while(scanf("%d%d",&m,&n) && !(n==0 && m==0)) { memset(line,0,sizeof(line)); memset(girl,0,sizeof(girl)); t=0; for(int i=1; i<=m; i++) { int j; scanf("%d",&j); while(j--) nx[++t]=i; } for(int i=1; i<=n; i++) { int cou; int tmp; scanf("%d",&cou); for(int j=0; j<cou; j++) { scanf("%d",&tmp); for(int o=1; o<=t; o++) if(nx[o]==tmp) line[i][o]=1; } } int ans=0; for(int i=1; i<=n; i++) { memset(used,0,sizeof(used)); if(found(i)) ans++; } if(ans==t) { printf("1\n"); int tmp=0; for(int i=1; i<=t; i++) { if(tmp++==0) printf("%d",girl[i]); else printf(" %d",girl[i]); if(nx[i]!=nx[i+1]) { printf("\n"); tmp=0; } } } else printf("0\n"); } return 0;}
阅读全文
0 0
- uva10092
- uva10092 The Problem with the Problemsetter
- UVa10092: The Problem with the Problem Setter 题解
- python单元测试之unittest
- sql server 2012外接excel的数据挖掘学习中
- 升实训一般面试题
- 老工程师教你如何搭建智能家居控制系统
- 迪米特原则
- uva10092
- Android System Properties Dynamic
- leetcode---617. Merge Two Binary Trees
- Redis管道(pipeline)
- 扩展系统功能——装饰模式(一)
- uva10080
- element-ui 给页面上的DOM元素加loading效果
- 你想找的Python资料这里全都有!没有你找不到!史上最全资料合集
- FMI飞马网 | AI人工智能:54份行业重磅报告汇总(附下载)