网络流HDU 2883
建图 源点 -> 每个人 -> 每段时间 -> 汇点
时间要离散化一下 分成一些时间段
权 inf ti[i]*(time[i]-time[i-1]) m*(time[i]-time[i-1])
n人 m个机器
开始时间 总共要的数目 底线时间 每个所需时间
如果可以达到输出Y 否则N
- #include<stdio.h>
- #include<algorithm>
- #include<string.h>
- #include<queue>
- #include<math.h>
- using namespace std;
- #define inf 100000000
- #define MAXN 300
- #define MAXN1 200000
- int si[MAXN+],ni[MAXN+],ei[MAXN+],ti[MAXN+];
- int time[MAXN*+],S,T;
- int head[*MAXN];
- int cnt;
- struct edg
- {
- int w,next,to;
- }x[MAXN1+];
- void add(int u,int v,int w)
- {
- x[cnt].next=head[u];
- x[cnt].to=v;
- x[cnt].w=w;
- head[u]=cnt++;
- }
- int vis[*MAXN];
- int bfs()
- {
- memset(vis,-,sizeof(vis));
- vis[S]=;
- queue<int>q1;
- q1.push(S);
- while(!q1.empty())
- {
- int now=q1.front();
- q1.pop();
- for(int j=head[now];j!=-;j=x[j].next)
- {
- if(vis[x[j].to]<&&x[j].w)
- {
- vis[x[j].to]=vis[now]+;
- q1.push(x[j].to);
- }
- }
- }
- return vis[T]!=-;
- }
- int dfs(int u,int w)
- {
- int ans=;
- if(u==T)
- return w;
- int i;
- for(i=head[u];i!=-;i=x[i].next)
- {
- if(vis[x[i].to]==vis[u]+&&x[i].w)
- {
- int b=dfs(x[i].to,min(w-ans,x[i].w));
- x[i].w-=b;
- x[i^].w+=b;
- ans=ans+b;
- }
- }
- return ans;
- }
- int main()
- {
- int n,m;
- while(scanf("%d%d",&n,&m)!=EOF)
- {
- int i,j;
- int c1,sum=;
- cnt=;
- for(i=;i<=n;i++)
- {
- scanf("%d%d%d%d",&si[i],&ni[i],&ei[i],&ti[i]);
- time[cnt++]=si[i];
- time[cnt++]=ei[i];
- sum=sum+ni[i]*ti[i];
- }
- sort(time,time+cnt);
- c1=;
- for(i=;i<cnt;i++)
- {
- if(time[i]!=time[i-])
- time[c1++]=time[i];
- }
- S=;
- T=n+c1+;
- cnt=;
- memset(head,-,sizeof(head));
- for(i=;i<=n;i++)
- add(S,i,ni[i]*ti[i]),add(i,S,);
- for(i=;i<c1;i++)
- {
- if(i==) //0的时候没有i-1
- {
- add(n+i+,T,m*time[i]);
- add(T,n+i+,);
- }
- else
- {
- add(n+i+,T,m*(time[i]-time[i-]));
- add(T,n+i+,);
- }
- for(j=;j<=n;j++)
- {
- int a;
- if(i==)
- a=;
- else
- a=time[i-];
- if(si[j]<=a&&time[i]<=ei[j])
- {
- add(j,n+i+,inf);
- add(n+i+,j,);
- }
- }
- }
- int ans=;
- while(bfs())
- ans=ans+dfs(S,inf);
- if(ans>=sum)
- printf("Yes\n");
- else
- printf("No\n");
- }
- return ;
- }
网络流HDU 2883的更多相关文章
- HDU 2883 kebab(最大流)
HDU 2883 kebab 题目链接 题意:有一个烧烤机,每次最多能烤 m 块肉.如今有 n 个人来买烤肉,每一个人到达时间为 si.离开时间为 ei,点的烤肉数量为 ci,每一个烤肉所需烘烤时间为 ...
- 网络流 HDU 3549 Flow Problem
网络流 HDU 3549 Flow Problem 题目:pid=3549">http://acm.hdu.edu.cn/showproblem.php?pid=3549 用增广路算法 ...
- hdu 2883 kebab 网络流
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2883 Almost everyone likes kebabs nowadays (Here a ke ...
- 图论--网络流--最大流 HDU 2883 kebab(离散化)
Problem Description Almost everyone likes kebabs nowadays (Here a kebab means pieces of meat grilled ...
- hdu 2883 kebab(时间区间压缩 && dinic)
kebab Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- HDU 2883 kebab
kebab Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID: 2883 ...
- 网络流 HDU 3605
建图 源点 -> 1024类人 -> 星球 -> 汇点 权 每类人数目 星球容量 星球容量 列举 0~1 ...
- kebab HDU - 2883(按时间段建点)
题意: 有n个人去撸串,每个人都能决定自己的串上有几块肉,每一块肉都要花费一个单位时间才熟,烤炉一次能烤m块肉 给出每个人的起始时间.终止时间.要几串.每个串上有几块肉,问能否满足所有的人 (啥?题不 ...
- hdu 2883(构图+最大流+压缩区间)
kebab Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
随机推荐
- BZOJ2118墨墨的等式[数论 最短路建模]
2118: 墨墨的等式 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 1317 Solved: 504[Submit][Status][Discus ...
- C# 事件编程在游戏开发的应用
2D碰撞检测:http://wenku.baidu.com/view/45544cfcfab069dc50220145.html 1.Action System.Action 等于快捷创建一个委托 2 ...
- java 27 - 1 反射之 类的加载器
说到反射,首先说类的加载器. 类的加载: 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. 加载: 就是指将class文件读入内存,并为之 ...
- nmap脚本扫描使用总结
nmap的脚本默认目录为:/usr/share/nmap/scripts/ Nmap提供的命令行参数如下 -sC: 等价于--script=default,使用默认类别的脚本进行扫描 可更换其他类别 ...
- html页面实现自动刷新的几种方法
使用场景: 1. 页面需要定时刷新,实时加载数据(H5中的WebSocket和SSE可以实现局部刷新) 2. 一定时间之后跳转到指定页面(登录注册之类) 3. 前端开发使用伪数据调试html页面(修改 ...
- LinkedList子类与Queue接口
LinkedList表示的是一个链表的操作类.定义如下: public class LinkedList<E> extends AbstractSequentialList<E> ...
- O(1) 查询gcd
我们来安利一个黑科技.(其实是Claris安利来的 比如我现在有一坨询问,每次询问两个不超过n的数的gcd. n大概1kw,询问大概300w(怎么输入就不是我的事了,大不了交互库 http://mim ...
- 如何将matlab画出的图片保存为要求精度
· 来源:http://emuch.net/bbs/viewthread.php?tid=2705843 杂志社对投稿图片的分辨率通常有如下要求: TIFF: Colour or greyscale ...
- C# Winform应用程序占用内存较大解决方法整理(转)
原文:http://www.jb51.net/article/56682.htm 背景: 微软的 .NET FRAMEWORK 现在可谓如火如荼了.但是,.NET 一直所为人诟病的就是“胃口太大”,狂 ...
- noip2008 双栈排序
题目描述 Description \(Tom\)最近在研究一个有趣的排序问题.如图所示,通过\(2\)个栈\(S_1\)和\(S_2\),\(Tom\)希望借助以下\(4\)种操作实现将输入序列升序排 ...