http://poj.org/problem?id=1698

电影和日子匹配,电影可以匹配多个日子。

最多有maxw*7个日子。

二分图多重匹配完,检查一下是否每个电影都匹配了要求的日子那么多。

#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 360
#define M 30
using namespace std;
int t,n,m;
int g[N][M];
int linker[M][N],num[M];
bool vis[M];
bool dfs(int u){
for(int v=0;v<m;v++)
if(g[u][v]&& !vis[v]){
vis[v]=1;
if(linker[v][]<num[v]){
linker[v][++linker[v][]]=u;
return 1;
}
for(int i=1;i<=num[v];i++)
if(dfs(linker[v][i])){
linker[v][i]=u;
return 1;
}
}
return 0;
}
int hungary(){
int res=0;
for(int i=0;i<m;i++)
linker[i][]=0;
for(int u=0;u<n;u++){
memset(vis,0,sizeof vis);
if(dfs(u))res++;
}
return res;
} bool solve(){
hungary();
for(int i=0;i<m;i++){
// printf("{%d}",linker[i][]);
if(linker[i][]!=num[i])
return 0;
}
return 1;
}
int main(){
scanf("%d",&t);
while(t--){
scanf("%d",&m);
memset(g,0,sizeof g);
int maxw=0;
for(int i=0;i<m;i++)
{
for(int j=0;j<7;j++)
scanf("%d",&g[j][i]);
int w;
scanf("%d%d",&num[i],&w);
maxw=max(maxw,w);
for(int j=0;j<7;j++)if(g[j][i])
for(int k=1;k<w;k++)
g[j+k*7][i]=1;
}
n=maxw*7;
if(solve())puts("Yes");
else puts("No");
}
return 0;
}

  

【POJ 1698】Alice's Chance(二分图多重匹配)的更多相关文章

  1. poj 1698 Alice‘s Chance

    poj 1698  Alice's Chance 题目地址: http://poj.org/problem?id=1698 题意: 演员Alice ,面对n场电影,每场电影拍摄持续w周,每周特定几天拍 ...

  2. POJ 1698 Alice's Chance

    题目:Alice 要拍电影,每一天只能参与一部电影的拍摄,每一部电影只能在 Wi 周之内的指定的日子拍摄,总共需要花 Di 天时间,求能否拍完所有电影. 典型的二分图多重匹配,这里用了最大流的 din ...

  3. 图论--网络流--最大流--POJ 1698 Alice's Chance

    Description Alice, a charming girl, have been dreaming of being a movie star for long. Her chances w ...

  4. poj 1698 Alice's Chance 最大流

    题目:给出n部电影的可以在周几拍摄.总天数.期限,问能不能把n部电影接下来. 分析: 对于每部电影连上源点,流量为总天数. 对于每一天建立一个点,连上汇点,流量为为1. 对于每部电影,如果可以在该天拍 ...

  5. POJ 1698 Alice&#39;s Chance(最大流+拆点)

    POJ 1698 Alice's Chance 题目链接 题意:拍n部电影.每部电影要在前w星期完毕,而且一周仅仅有一些天是能够拍的,每部电影有个须要的总时间,问能否拍完电影 思路:源点向每部电影连边 ...

  6. poj 2289 Jamie's Contact Groups【二分+最大流】【二分图多重匹配问题】

    题目链接:http://poj.org/problem?id=2289 Jamie's Contact Groups Time Limit: 7000MS   Memory Limit: 65536K ...

  7. Poj 2289 Jamie's Contact Groups (二分+二分图多重匹配)

    题目链接: Poj 2289 Jamie's Contact Groups 题目描述: 给出n个人的名单和每个人可以被分到的组,问将n个人分到m个组内,并且人数最多的组人数要尽量少,问人数最多的组有多 ...

  8. <转> 二分图多重匹配问题

    在二分图最大匹配中,每个点(不管是X方点还是Y方点)最多只能和一条匹配边相关联,然而,我们经常遇到这种问题,即二分图匹配中一个点可以和多条匹配边相关联,但有上限,或者说,Li表示点i最多可以和多少条匹 ...

  9. POJ2584 T-Shirt Gumbo【二分图多重匹配】

    题目链接: id=2584">http://poj.org/problem?id=2584 题目大意: 如今有5种型号(S.M.L.X.T)的衣服要发放给N个參赛队员.给出每一个參赛者 ...

随机推荐

  1. [No00005A]word多文档合一

    2个方法:法一,一个个插入,法二,一次性插入多个. 法一: 视图->大纲视图 点击 大纲 -> 显示文档 点击插入,逐个插入文档.. 最终 将视图调回页面视图..结束. 法二: 插入 - ...

  2. Eclipse cpp 开发 include路径

  3. 程序Bug---易错点

    只有当图像与HTML文档在同一目录时,才能用相对地址显示.

  4. proxy改变this指向

    var core_slice = Array.prototype.slice; var proxy = function(context,fn) { var args, proxy; if ( typ ...

  5. wget 怎么下载https的连接错误: Unable to establish SSL connection

    curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.11.tgz?_ga=1.33040702.1440244624.1 ...

  6. jquery无缝间歇向上滚动(间断滚动)

    jquery无缝间歇向上滚动 JS部份 $(function(){ var $this = $(".renav"); var scrollTimer; $this.hover(fu ...

  7. K910 升级Android 4.4.2可用的Google Service Framework

    把手机换成了K910, 看上的是骁龙800的cpu和电子罗盘... 比V987是升级一大截了. 花了一个晚上加半个上午的时间终于搞定了GoogleServiceFramework, 试了大概四五个网上 ...

  8. 04传智_jbpm与OA项目_部门模块改进_直接在BaseAction中实现ModelDriven<T>

    这个项目是用Struts2做的,我这里单独写了一个BaseAction,用来存放所有的功能模块的Action的公共部分, 刚开始的做法是这个BaseAction只会继承ActionSupport 并不 ...

  9. silverlight: http请求的GET及POST示例

    http请求的get/post并不是难事,只是silverlight中一切皆是异步,所以代码看起来就显得有些冗长了,下面这个HttpHelper是在总结 园友 的基础上,修改得来: namespace ...

  10. 【翻译】Windows 10 中为不同设备加载不同页面的3种方法

    在以前,为PC和手机做App是两个工程,PC和手机各一个.在Windows 10中会发现只有一个了,对于简单的页面变化可以使用VisualState来解决,但是比如网易云音乐这种PC版和手机版差异巨大 ...