这很像之前做的一道noip模拟题……

所以当时那题也可以用费用流写(雾)

拆点,将每个月拆成两个点,一个向起点连边表示产量,另一个点连汇点表示销量。

然后每个点依次往后面的点2连边,表示保存。

#include<bits/stdc++.h>
#define N 10005
#define inf 1000000007
#define naive 0
using namespace std;
typedef long long ll;ll ans=naive;
int wy,n,m,I,head[N],tot=naive,pre[N],inq[N],dis[N],s,t;
struct Edge{int u,v,next,f,c;}G[];
inline void addedge(int u,int v,int f,int c){
G[tot].u=u;G[tot].v=v;G[tot].f=f;G[tot].c=c;G[tot].next=head[u];head[u]=tot++;
G[tot].u=v;G[tot].v=u;G[tot].f=;G[tot].c=-c;G[tot].next=head[v];head[v]=tot++;
}
inline bool bfs(int s,int t){
memset(inq,naive,sizeof(inq));memset(pre,-,sizeof(pre));for(int i=s;i<=t;i++)dis[i]=inf;
queue<int>q;q.push(s);dis[s]=naive;
while(!q.empty()){
int u=q.front();q.pop();inq[u]=;
for(int i=head[u];~i;i=G[i].next){
int v=G[i].v,f=G[i].f,c=G[i].c;
if(f&&dis[v]>dis[u]+c){pre[v]=i;dis[v]=dis[u]+c;inq[v]=;q.push(v);}
}
}
return dis[t]!=inf;
}
void mcmf(int s,int t){
while(bfs(s,t)){
int x=inf;if(dis[t]>)return;
for(int i=pre[t];~i;i=pre[G[i].u])x=min(x,G[i].f);
for(int i=pre[t];~i;i=pre[G[i].u])G[i].f-=x,G[i^].f+=x,ans+=1LL*G[i].c*x;
}
}
inline int read(){
int f=,x=;char ch;
do{ch=getchar();if(ch=='-')f=-;}while(ch<''||ch>'');
do{x=x*+ch-'';ch=getchar();}while(ch>=''&&ch<='');
return f*x;
}
int main(){
int T=read();
while(T--){
m=read();I=read();ans=naive;memset(head,-,sizeof(head));tot=naive;t=*m+;s=naive;
for(int i=;i<=m;i++){
int c1=read(),f1=read(),c2=read(),f2=read(),x=read();
addedge(s,i,f1,c1);addedge(i+m,t,f2,-c2);
for(int j=i;j<=min(i+x,m);j++)addedge(i,j+m,inf,I*(j-i));
}
mcmf(s,t);printf("Case %d: %lld\n",++wy,-ans);
}
}

最新文章

  1. Recommending branded products from social media -RecSys 2013-20160422
  2. 攻城狮在路上(叁)Linux(二十八)--- 打包命令:tar
  3. ccc tiledmap 获取元素属性
  4. DB2常识
  5. 为大家分享一个 Ajax Loading —— spin.js(转)
  6. 【Hibernate总结系列】....hbm.xml配置
  7. 利用CSP探测网站登陆状态
  8. js取整并保留两位小数的方法
  9. FMECA分析
  10. [BZOJ]2017省队十连测推广赛1 T2.七彩树
  11. Python【第一课】 Python简介和基础
  12. 读取Excel文件存储在实体类中
  13. atof()函数 atol()
  14. Notes 和 Domino 已知限制
  15. shell利用数组分割组合字符串
  16. python对字典及列表递归排序
  17. stack &amp;&amp; queue
  18. PHP continue break 区别 用法
  19. C语言的 32个关键之和9个控制语言之关键字
  20. .net 应用程序 发布上线注意事项

热门文章

  1. IntelliJ IDEA2018注册
  2. Android 数据库升级中数据保持和导入已有数据库
  3. BZOJ3110:[ZJOI2013]K大数查询——题解
  4. HDOJ(HDU).2191. 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活 (DP 多重背包+二进制优化)
  5. &quot;HK&quot;日常之冻结术
  6. React Render Callback Pattern(渲染回调模式)
  7. BZOJ1491 洛谷2047 NOI2007 社交网络
  8. Nginx配置解析
  9. 【题解】Casting Spells LA 4975 UVa 1470 双倍回文 SDOI 2011 BZOJ 2342 Manacher
  10. SDUT3926 kmp