博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj1221: [HNOI2001] 软件开发
阅读量:5258 次
发布时间:2019-06-14

本文共 1751 字,大约阅读时间需要 5 分钟。

遇到这种题就只能猜证结合,构图瞎蒙

 upd:这道题还是非常厉害的我才没有因为day3被卡线要去听菜鸡大讲堂diss叫我讲这题的主讲师兄

考虑到主要要算的是最小费用,而网络流是否满流成了一个棘手的问题(一共用的毛巾并不确定)

但是确定的是每天要用的毛巾数,我们可以拆点,一个表示当天的用下来的旧毛巾,然后去变成新的,一个表示当天新毛巾,到ed可以了,st和ed各连一个流量为当天要用的,相当于充当了一个传递的功能

#include
#include
#include
#include
#include
#include
using namespace std;const int inf=99999999;struct node{ int x,y,c,d,next,other;}a[2100000];int len,last[2100000];void ins(int x,int y,int c,int d){ int k1,k2; k1=++len; a[len].x=x;a[len].y=y;a[len].c=c;a[len].d=d; a[len].next=last[x];last[x]=len; printf("%d %d %d %d\n",x,y,c,d); k2=++len; a[len].x=y;a[len].y=x;a[len].c=0;a[len].d=-d; a[len].next=last[y];last[y]=len; a[k1].other=k2; a[k2].other=k1;}int n,st,ed,ans;int list[21000];bool v[21000];int d[21000],cc[21000],pre[21000];bool spfa(){ memset(d,63,sizeof(d));d[st]=0; memset(cc,0,sizeof(cc));cc[st]=inf; memset(v,false,sizeof(v));v[st]=true; int head=1,tail=2;list[1]=st; while(head!=tail) { int x=list[head]; for(int k=last[x];k;k=a[k].next) { int y=a[k].y; if(d[y]>d[x]+a[k].d&&a[k].c>0) { d[y]=d[x]+a[k].d; cc[y]=min(cc[x],a[k].c); pre[y]=k; if(v[y]==false) { v[y]=true; list[tail]=y; tail++;if(tail==20500)tail=1; } } } v[x]=false; head++;if(head==20500)head=1; } if(d[ed]>=inf)return false; else { ans+=cc[ed]*d[ed]; int y=ed; while(y!=0) { int k=pre[y]; a[k].c-=cc[ed]; a[a[k].other].c+=cc[ed]; y=a[k].x; } return true; }}int main(){ int A,B,f,fa,fb,x; scanf("%d%d%d%d%d%d",&n,&A,&B,&f,&fa,&fb);st=2*n+1,ed=2*n+2; len=0;memset(last,0,sizeof(last)); for(int i=1;i<=n;i++) { scanf("%d",&x); ins(st,i,x,0); ins(i+n,ed,x,0); ins(st,i+n,inf,f); } for(int i=1;i

 

转载于:https://www.cnblogs.com/AKCqhzdy/p/8798682.html

你可能感兴趣的文章
httpd_Vhosts文件的配置
查看>>
php学习笔记
查看>>
普通求素数和线性筛素数
查看>>
PHP截取中英文混合字符
查看>>
【洛谷P1816 忠诚】线段树
查看>>
电子眼抓拍大解密
查看>>
poj 1331 Multiply
查看>>
tomcat7的数据库连接池tomcatjdbc的25个优势
查看>>
Html 小插件5 百度搜索代码2
查看>>
P1107 最大整数
查看>>
多进程与多线程的区别
查看>>
Ubuntu(虚拟机)下安装Qt5.5.1
查看>>
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
查看>>
java 常用命令
查看>>
CodeForces Round #545 Div.2
查看>>
卷积中的参数
查看>>
51nod1076 (边双连通)
查看>>
Item 9: Avoid Conversion Operators in Your APIs(Effective C#)
查看>>
深入浅出JavaScript(2)—ECMAScript
查看>>
STEP2——《数据分析:企业的贤内助》重点摘要笔记(六)——数据描述
查看>>