tjut 2883
来源:互联网 发布:手机淘宝我的尺码在哪 编辑:程序博客网 时间:2024/04/29 23:32
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<algorithm>#include<queue>#include<vector>#define inf 0x7fffffffusing namespace std;const int maxn=600+10;const int M = 999999;int n,m,from,to;int d[maxn];struct node{ int v,flow; int next;}edge[M*2];int head[maxn],edgenum;void add(int u,int v,int flow){ edge[edgenum].v=v ;edge[edgenum].flow=flow ; edge[edgenum].next=head[u]; head[u]=edgenum++; edge[edgenum].v=u ;edge[edgenum].flow=0; edge[edgenum].next=head[v]; head[v]=edgenum++;}int bfs(){ memset(d,0,sizeof(d)); d[from]=1; queue<int> Q; Q.push(from); while (!Q.empty()) { int u=Q.front() ;Q.pop() ; for (int i=head[u] ;i!=-1 ;i=edge[i].next) { int v=edge[i].v; if (!d[v] && edge[i].flow>0) { d[v]=d[u]+1; Q.push(v); if (v==to) return 1; } } } return 0;}int dfs(int u,int flow){ if (u==to || flow==0) return flow; int cap=flow; for (int i=head[u] ;i!=-1 ;i=edge[i].next) { int v=edge[i].v; if (d[v]==d[u]+1 && edge[i].flow>0) { int x=dfs(v,min(cap,edge[i].flow)); edge[i].flow -= x; edge[i^1].flow += x; cap -= x; if (cap==0) return flow; } } return flow-cap;}int dinic(){ int sum=0; while (bfs()) sum += dfs(from,inf); return sum;}int main(){ while (scanf("%d%d",&n,&m)!=EOF) { memset(head,-1,sizeof(head)); edgenum=0; int s[222],q[222],e[222],t[222]; int time[maxn],cnt=1; memset(time,0,sizeof(time)); int sum=0; for (int i=1 ;i<=n ;i++) { scanf("%d%d%d%d",&s[i],&q[i],&e[i],&t[i]); sum += q[i]*t[i]; time[cnt++]=s[i]; time[cnt++]=e[i]; } sort(time+1,time+cnt); int c=0; for (int i=1 ;i<cnt ;i++) { if (time[c] != time[i]) time[++c]=time[i]; } from=n+c+1; to=from+1; for (int i=1 ;i<=n ;i++) add(from,i,q[i]*t[i]); for (int i=1 ;i<=c ;i++) { add(n+i,to,m*(time[i]-time[i-1])); for (int j=1 ;j<=n ;j++) { if (s[j]<=time[i-1] && time[i]<=e[j]) add(j,n+i,inf); } } if (sum==dinic()) printf("Yes\n"); else printf("No\n"); } return 0;}
0 0
- tjut 2883
- tjut 5289
- tjut 5288
- tjut 5294
- tjut 2586
- tjut 5296
- tjut 5297
- tjut 5299
- tjut 5384
- tjut 5387
- tjut 5386
- tjut 5381
- tjut 5400
- tjut 5399
- tjut 5396
- tjut 5398
- tjut 5412
- tjut 5410
- Windows无法连接到无线网络
- php时间函数
- RecyclerView技术栈
- 分治算法(归并排序、一维点对、HDU-1007)
- 展讯7731C_M Android6.0 充电指示灯实现(二)------开机充电实现
- tjut 2883
- VS2013模块对于SAFESEH 映像是不安全的
- Redis的持久化机制
- dubbo相关
- js实现多物体不同运动框架
- 动态树之Link-Cut Trees
- hdu1166敌兵布阵
- leetcode(282): Expression Add Operators
- Java IO(二):IO流——处理流——转换流