原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1221

题意:你有3种方法进行对毛巾的处理,不同的处理方法有不同的cost,问你要如何规划才可以使得总花费最低。

解题思路:我们对每个点进行拆点,分为用过的毛巾和没用过的,这样就可以较为简单的连边,然后跑个最小费用最大流即可。

AC代码:

#include<stdio.h>
#include<string.h>
#define inf 0x7fffffff
#define min(a,b) (a<b?a:b)
struct zxy{int to,next,c,v;}edge[];
int n,e,cnt=,head[],dis[],que[],pre[],fc,ta,tb,fa,fb;
bool vis[];
inline int in(){
int x=;
char ch=getchar();
while(ch<''||ch>'') ch=getchar();
while(ch>=''&&ch<='') x=x*+ch-'',ch=getchar();
return x;
}
inline void ins(int x,int y,int v,int l){
edge[++cnt].to=y,edge[cnt].next=head[x],edge[cnt].v=v,edge[cnt].c=l,head[x]=cnt;
edge[++cnt].to=x,edge[cnt].next=head[y],edge[cnt].v=,edge[cnt].c=l*(-),head[y]=cnt;
}
inline bool SPFA(int s,int e){
for (register int i=s; i<=e; ++i) dis[i]=inf/;
int h=,t=;
que[]=s;
dis[s]=;vis[s]=;
do{
int w=que[++h];
for (register int i=head[w]; i; i=edge[i].next)
if (dis[w]+edge[i].c<dis[edge[i].to]&&edge[i].v){
int v=edge[i].to;pre[v]=i;
dis[v]=dis[w]+edge[i].c;
if (!vis[v]){
vis[v]=;
if (dis[v]<dis[que[h+]])que[h--]=v;
else que[++t]=v;
}
}
vis[w]=;
}while(h<t);
return dis[e]!=inf/;
}
int cost_flow(int s,int t){
int cost=;
while(SPFA(s,t)){
int mi=inf;
for (register int i=t; i; i=edge[pre[i]^].to)
mi=min(mi,edge[pre[i]].v);
for (register int i=t; i; i=edge[pre[i]^].to)
edge[pre[i]].v-=mi,edge[pre[i]^].v+=mi;
cost+=dis[t]*mi;
}
return cost;
}
void init(){
n=in(),ta=in(),tb=in(),fc=in(),fa=in(),fb=in();
for (int i=; i<=n; ++i){
register int x=in();
ins(,n+i,inf,fc);
ins(,i,x,);
ins(n+i,*n+,x,);
if(i<n) ins(i,i+,inf,);
if(i+ta<n) ins(i,i+ta+n+,inf,fa);
if(i+tb<n) ins(i,i+tb+n+,inf,fb);
}
}
int main(){
init();
printf("%d",cost_flow(,*n+));
}

【网络流】【BZOJ1221】【HNOI2001】软件开发的更多相关文章

  1. bzoj1221: [HNOI2001] 软件开发

    挖坑.我的那种建图方式应该也是合理的.然后连样例都过不了.果断意识到应该为神奇建图法... #include<cstdio> #include<cstring> #includ ...

  2. BZOJ1221 [HNOI2001] 软件开发 【费用流】

    题目 某软件公司正在规划一项n天的软件开发计划,根据开发计划第i天需要ni个软件开发人员,为了提高软件开发人员的效率,公司给软件人员提供了很多的服务,其中一项服务就是要为每个开发人员每天提供一块消毒毛 ...

  3. 【费用流】bzoj1221 [HNOI2001] 软件开发

    几乎为“线性规划与网络流24题”中的餐巾问题. 这里把S看成毛巾的来源,T看成软件公司,我们的目的就是让每天的毛巾满足要求(边满流). 引用题解: [问题分析] 网络优化问题,用最小费用最大流解决. ...

  4. BZOJ1221 [HNOI2001]软件开发 - 费用流

    题解 非常显然的费用流. 但是建图还是需要思考的QuQ 将每天分成两个节点 $x_{i,1}, x_{i,2} $, $ x_{i,1}$用于提供服务, $x_{i ,2}$ 用来从源点获得$nd[i ...

  5. BZOJ 3280: 小R的烦恼 & BZOJ 1221: [HNOI2001] 软件开发

    3280: 小R的烦恼 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 399  Solved: 200[Submit][Status][Discuss ...

  6. 【BZOJ 1221】 1221: [HNOI2001] 软件开发 (最小费用流)

    1221: [HNOI2001] 软件开发 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1581  Solved: 891 Description ...

  7. bzoj 1221 [HNOI2001] 软件开发 费用流

    [HNOI2001] 软件开发 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1938  Solved: 1118[Submit][Status][D ...

  8. BZOJ 1221: [HNOI2001] 软件开发

    1221: [HNOI2001] 软件开发 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1428  Solved: 791[Submit][Stat ...

  9. BZOJ 1221: [HNOI2001] 软件开发(最小费用最大流)

    不知道为什么这么慢.... 费用流,拆点.... --------------------------------------------------------------------------- ...

  10. 【bzoj1221】[HNOI2001] 软件开发 费用流

    题目描述 某软件公司正在规划一项n天的软件开发计划,根据开发计划第i天需要ni个软件开发人员,为了提高软件开发人员的效率,公司给软件人员提供了很多的服务,其中一项服务就是要为每个开发人员每天提供一块消 ...

随机推荐

  1. 248&258--高级软件工程第三次作业

    0 小组成员 马帅 / 2017202110248 齐爽爽 / 2017282110258 1 项目 GitHub 地址 GitHub:https://github.com/whumashuai/QT ...

  2. 0基础菜鸟学前端之Vue.js

    简介:0基础前端菜鸟,啃了将近半月前端VUE框架,对前端知识有了初步的了解.下面总结一下这段时间的学习心得. 文章结构 前端基础 Vue.js简介 Vue.js常用指令 Vue.js组件 Vue.js ...

  3. 第一篇:Python入门

    一.编程与编程语言 编程的目的: 计算机的发明,是为了用机器取代/解放人力,而编程的目的则是将人类的思想流程按照某种能够被计算机识别表达方式传递给计算机,从而达到让计算机能够像人脑/电脑一样自动执行的 ...

  4. tomcat 修改默认字符集

    找到connector节点,插入 disableUploadTimeout="true" useBodyEncodingForURI="true" URIEnc ...

  5. unity3D 知识点随手记

    最近闲来无事,记记unity3D相关的一些知识点吧,也当作笔记存储.转载请标明出处:http://www.cnblogs.com/zblade/ 1.unity是如何调用Start/Awake等相关函 ...

  6. 开发一个http代理服务器

    参考链接: http://www.cnblogs.com/jivi/archive/2013/03/10/2952860.html https://www.2cto.com/kf/201405/297 ...

  7. 阿里云API网关(4)快速入门(开放 API)

    网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...

  8. leetcode算法:Reshape the Matrix

    In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a new o ...

  9. Python 中格式化字符串 % 和 format 两种方法之间的区别

    Python2.6引入了 format 格式化字符串的方法,现在格式化字符串有两种方法,就是 % 和 format ,具体这两种方法有什么区别呢?请看以下解析. # 定义一个坐标值 c = (250, ...

  10. bs4解析要获取被注掉的部分需先将注释符号去掉

    <div class="xzcf-content"> <div id="sfxz"> <div class="main- ...