hdu2831
来源:互联网 发布:js 字符串数组排序 编辑:程序博客网 时间:2024/06/05 10:38
/*
分析:
二分匹配水题。
时间(““第几个”种哪一行” 的“第几个”)和行匹配。
2013-03-06
*/
分析:
二分匹配水题。
时间(““第几个”种哪一行” 的“第几个”)和行匹配。
2013-03-06
*/
#include"stdio.h"#include"string.h"#include"stdlib.h"#define N 111int n,need;int V[N],D[N];int match[N],visit[N];struct Eage{int to,next;}eage[N*N];int tot,head[N];void add(int a,int b){eage[tot].to=b;eage[tot].next=head[a];head[a]=tot++;}int dfs(int k){int j,v;for(j=head[k];j!=-1;j=eage[j].next){v=eage[j].to;if(visit[v])continue;visit[v]=1;if(k*need+D[v]>V[v])continue;if(match[v]==-1 || dfs(match[v])){match[v]=k;return 1;}}return 0;}int main(){int i,l;int flag;while(scanf("%d%d",&n,&need)!=-1){for(i=1;i<=n;i++)scanf("%d%d",&V[i],&D[i]);tot=0;memset(head,-1,sizeof(head));for(i=1;i<=n;i++)for(l=1;l<=n;l++)add(i,l);flag=0;memset(match,-1,sizeof(match));for(i=1;i<=n;i++){memset(visit,0,sizeof(visit));if(!dfs(i)){flag=1;break;}}if(flag){printf("The zombies eat your brains!\n");continue;}for(i=1;i<=n;i++)if(match[i]==1){printf("%d",i);break;}for(i=2;i<=n;i++)for(l=1;l<=n;l++)if(match[l]==i){printf(" %d",l);break;}printf("\n");}return 0;}
- hdu2831
- hdu2831 2010.3.6
- Linux芯片级移植与底层驱动(基于3.7.4内核) --SMP多核启动以及CPU热插拔驱动
- 线程的实现
- Linux Top用法
- Android快捷方式的创建与shortcut是否已创建的判断
- 悲观程序员的五件武器(转)
- hdu2831
- 第一辑 回家的路--看不见的财富
- Homework2_2.java
- 人脸检测之Haar分类器
- DOM方式与SAX方式的异同
- 《代码大全》学习笔记(2):利用隐喻对编程进行更深刻的理解
- 自定义实现Hadoop Key-Value
- 8、王爽《汇编语言》笔记_子程序一
- Yii: 如何在CGridView通过Ajax方式刷新数据后执行JS脚本