题目大意:爱丽丝要拍电影,有n部电影,规定爱丽丝每部电影在每个礼拜只有固定的几天可以拍电影,只可以拍前面w个礼拜,并且这部电影要拍d天,问爱丽丝能不能拍完所有的电影
第一行代表有多少组数据
对于每组数据第一行代表有n部电影
第一行代表有多少组数据
对于每组数据第一行代表有n部电影
接下来2到n+1行,每行代表一个电影,每行9个数,前面7个数,1代表拍,0代表不拍,第8个数代表要拍几天,第9个数代表有几个礼拜时间拍
解题思路:这道题用网络流来做,这也是我第一次做这种需要建模来做的题,网络流的题主要就是构建图,虽然还是借助了解题报告的构建方法。。。。。
设源点为1,汇点为2,源点到每一部电影的容量为d(爱丽丝需要拍片的天数),每部电影到日期点的容量为1,日期到汇点的容量为1。最后看最大流是否等于 sum(d[ i ])
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
const int N=400;
const int INF=99999999;
int n,m,sum,s1,t1,T;//s,t为始点和终点
int flow[N][N],cap[N][N],a[N],p[N],film_fin