#include<stdio.h>
#include<string.h>
#include<queue>
using namespace std;
#define inf 0x3fffffff
#define N 4000
struct node {
int u,v,w,next;
}bian[N*N*4];
int head[N],yong,n,s,t;
void init() {
memset(head,-1,sizeof(head));
yong=0;
}
void addedge(int u,int v,int w) {
bian[yong].u=u;
bian[yong].v=v;
bian[yong].w=w;
bian[yong].next=head[u];
head[u]=yong++;
}
int d[N];
int bfs() {
int i,cur,v;
queue<int>q;
memset(d,0,sizeof(d));
q.push(s);
d[s]=1;
while(!q.empty()) {
cur=q.front();
q.pop();
for(i=head[cur];i!=-1;i=bian[i].next) {
v=bian[i].v;
if(bian[i].w&&!d[v]) {
d[v]=d[cur]+1;
if(v==t)
return 1;
q.push(v);
}
}
}
return 0;
}
int Min(int a,int b) {
return a>b?b:a;
}
int dfs(int u,int limit) {
int cost=0,v,i,flow;
if(u==t)//注意
return limit;
for(i=head[u];i!=-1;i=bian[i].next) {
v=bian[i].v;
if(bian[i].w&&d[v]==d[u]+1) {
flow=dfs(v,Min(limit-cost,bian[i].w));
if(flow>0) {//
bian[i].w-=flow;
bian[i^1].w+=flow;
cost+=flow;
if(limit==cost)//如果已经搜到了满流就跳出
break;
}
else
d[v]=-1;//如果流量等于零,再遇到这个点就进行不下去了
}
}
return cost;
}
int dinic() {
int sum=0;
while(bfs())//建层次图
sum+=dfs(s,inf);//多次dfs搜索s-t增光路求可行流
return sum;
}
int main() {
int tt,m,i,j,k,ma,a,b,c,sum,f=0;
scanf("%d",&tt);
while(tt--) {
init();
scanf("%d%d",&n,&m);
ma=-1;
s=0;sum=0;
for(i=1;i<=n;i++) {
scanf("%d%d%d",&a,&b,&c);
sum+=a;
addedge(s,i,a);//源点与任务建边
addedge(i,s,0);
if(ma<c)ma=c;
for(j=b;j<=c;j++) {
addedge(i,n+j,1);//任务与时间点建边
addedge(n+j,i,0);
}
}
t=n+ma+1;
for(i=1;i<=ma;i++) {
addedge(n+i,t,m);//时间点与汇点建边
addedge(t,n+i,0);
}
k=dinic();//跑一边最大流
if(k==sum)
printf("Case %d: Yes\n",++f);
else
printf("Case %d: No\n",++f);
printf("\n");
}
return 0;
}

hdu 3572 最大流判断满流的更多相关文章

  1. HDU2883 kebab(最大流判断满流 + 离散化 + 区间化点)

    [题意]: 有一个烤箱,烤箱在一个时刻最多考M个肉串,N个顾客,每个顾客有属性s,n,e,t s是来的时间,n是想要的肉串数量,e是最晚离开的时间,t是烤的时间(几分熟). 顾客的烤肉可以分开烤,比如 ...

  2. HDU 3572 Task Schedule(最大流判断满流)

    https://vjudge.net/problem/HDU-3572 题意: 有N个作业和M台机器,每个作业都有一个持续时间P,工作的日期为S~E.作业可以断断续续的在不同机器上做,每台机器每次只可 ...

  3. hdu-3572 Task Schedule---最大流判断满流+dinic算法

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3572 题目大意: 给N个任务,M台机器.每个任务有最早才能开始做的时间S,deadline E,和持 ...

  4. hdu3572 任务分配/最大流判断满流

    题意:将n个任务分配为m个机器,给每个任务需要的天数(无需每天连续),和可以在哪些天去做该任务,求是否存在方案. 典型的任务(X)----天(Y)二分最大流,(因为这里任务是与天的关系)处理器控制流量 ...

  5. hdu3572Task Schedule 最大流,判断满流 优化的SAP算法

    PS:多校联赛的题目质量还是挺高的.建图不会啊,看了题解才会的. 参考博客:http://blog.csdn.net/luyuncheng/article/details/7944417 看了上面博客 ...

  6. hdu 3572 Task Schedule【 最大流 】

    求出最大流,再判断是否满流 先不理解为什么要这样建图 后来看了这一篇题解 http://blog.csdn.net/u012350533/article/details/12361003 把0看做源点 ...

  7. hdu 3572 Task Schedule(最大流&amp;&amp;建图经典&amp;&amp;dinic)

    Task Schedule Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  8. hdu 3572 Task Schedule(最大流)2010 ACM-ICPC Multi-University Training Contest(13)——Host by UESTC

    题意: 告诉我们有m个任务和k个机器.第i个任务需要ci天完成,最早从第ai天开始,最晚在第bi天结束.每台机器每天可以执行一个任务.问,是否可以将所有的任务都按时完成? 输入: 首行输入一个整数t, ...

  9. hdu 3572 仪器与任务 最大流 好题 体会建图思想

    Task Schedule Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

随机推荐

  1. Luogu4198 楼房重建

    https://zybuluo.com/ysner/note/1124880 题面 带修改的区间维护最大斜率. 题面 解析 用线段树区间维护斜率. 考虑如何向上合并. 左半段一定有贡献. 如果左半段的 ...

  2. 51Nod 1301 集合异或和 —— 异或DP

    题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1301 参考博客:https://blog.csdn.net/qq_ ...

  3. 54. Extjs组件render说明

    转自:http://blog.chinaunix.net/uid-450400-id-2119168.html 1. 1.调用组件的render方法 panel.render('div'); 2.在配 ...

  4. [Apple开发者帐户帮助]八、管理档案(4)

    您可以编辑,下载或删除在开发人员帐户中创建的配置文件.例如,如果您撤消了证书或禁用了配置文件中包含的设备,请编辑配置文件.或重新置备的个人资料,如果因为你它是无效的功能的应用程式服务. 注意: Xco ...

  5. php从数据库读取中文显示问号??的解决办法

    出错原因:1.数据库编码格式不对 2.PHP编码格式不对 3.浏览器编码格式不对 上面三者编码格式不统一,就会出现问题 数据库读取的时候在mysqli_connect()之后要设置连接字符编码mysq ...

  6. BZOJ 4310 二分+SA+RMQ

    思路: 首先求出后缀数组和height数组,这样能得到本质不同的子串数目 这里利用:本质不同的子串=∑(Len−SA[i]−height[i])=∑(Len−SA[i]−height[i])利用SA[ ...

  7. hdu2030

    http://acm.hdu.edu.cn/showproblem.php?pid=2030 #include<stdio.h> #include<math.h> #inclu ...

  8. ACM_情人节

    情人节 Time Limit: 2000/1000ms (Java/Others) Problem Description: 某发每天都在各大群水啊水,然后认识了很多崇拜他的妹子,毕竟是数学专业.这不 ...

  9. mysql使用出现错误:mysqld dead but subsys locked

    现象: 登陆时候出现如下信息 [root@localhost home]# mysql -uroot -p123456mysql: [Warning] Using a password on the ...

  10. 6.11---字节输入流数据根据字节输出流存到文件中---io流概念及分类---文件存储的原理和记事本打开的原理---字节流读取文件的原理---文件复制的原理