BZOJ 2424 DP OR 费用流
思路:
1.DP
f[i][j]表示第i个月的月底 还剩j的容量
转移还是相对比较好想的……
f[i][j+1]=min(f[i][j+1],f[i][j]+d[i]);
if(j>=u[i+1])f[i+1][j-u[i+1]]=min(f[i+1][j-u[i+1]],f[i][j]+m*j);
else f[i+1][0]=min(f[i+1][0],f[i][j]+d[i+1]*(u[i+1]-j)+m*j);
//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,m,s,u[55],d[55],f[55][10005];
int main(){
scanf("%d%d%d",&n,&m,&s);
for(int i=1;i<=n;i++)scanf("%d",&u[i]);
for(int i=1;i<=n;i++)scanf("%d",&d[i]);
memset(f,0x3f,sizeof(f));
f[1][0]=d[1]*u[1];
for(int i=1;i<=n;i++)
for(int j=0;j<=s;j++){
f[i][j+1]=min(f[i][j+1],f[i][j]+d[i]);
if(j>=u[i+1])f[i+1][j-u[i+1]]=min(f[i+1][j-u[i+1]],f[i][j]+m*j);
else f[i+1][0]=min(f[i+1][0],f[i][j]+d[i+1]*(u[i+1]-j)+m*j);
}
printf("%d\n",f[n][0]);
}
2.
费用流 裸的建图吧
源->i 流量inf 费用d[i]
i->汇 流量u[i] 费用0
i->i+1 (i!=n) 流量S 费用m
跑一哈 搞定~
//By SiriusRen
#include <queue>
#include <cstdio>
#include <cstring>
using namespace std;
#define N 55
#define M 55555
#define inf 0x3f3f3f3f
#define mem(x,y) memset(x,y,sizeof(x))
int n,m,S,xx,T,edge[M],v[M],cost[M],first[N],nxt[M],vis[N],minn[N],d[N],with[N],tot,ans;
void Add(int x,int y,int C,int E){edge[tot]=E,cost[tot]=C,v[tot]=y,nxt[tot]=first[x],first[x]=tot++;}
void add(int x,int y,int C,int E){Add(x,y,C,E),Add(y,x,-C,0);}
bool tell(){
mem(vis,0),mem(with,0),mem(d,0x3f),mem(minn,0x3f);
queue<int>q;q.push(0),d[0]=0;
while(!q.empty()){
int t=q.front();q.pop();vis[t]=0;
for(int i=first[t];~i;i=nxt[i])
if(d[v[i]]>d[t]+cost[i]&&edge[i]){
with[v[i]]=i,d[v[i]]=d[t]+cost[i],minn[v[i]]=min(minn[t],edge[i]);
if(!vis[v[i]])vis[v[i]]=1,q.push(v[i]);
}
}return d[T]!=0x3f3f3f3f;
}
int zeng(){
for(int i=T;i;i=v[with[i]^1])
edge[with[i]]-=minn[T],edge[with[i]^1]+=minn[T];
return minn[T]*d[T];
}
int main(){
mem(first,-1);
scanf("%d%d%d",&n,&m,&S),T=n+1;
for(int i=1;i<=n;i++)scanf("%d",&xx),add(i,T,0,xx);
for(int i=1;i<=n;i++){
scanf("%d",&xx),add(0,i,xx,inf);
if(i!=n)add(i,i+1,m,S);
}
while(tell())ans+=zeng();
printf("%d\n",ans);
}
这道题 费用流还是要稍微快一点儿的……
BZOJ 2424 DP OR 费用流的更多相关文章
- BZOJ 2424: [HAOI2010]订货 费用流
2424: [HAOI2010]订货 Description 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定第一月月 ...
- [bzoj 1449] 球队收益(费用流)
[bzoj 1449] 球队收益(费用流) Description Input Output 一个整数表示联盟里所有球队收益之和的最小值. Sample Input 3 3 1 0 2 1 1 1 1 ...
- BZOJ.2597.[WC2007]剪刀石头布(费用流zkw)
BZOJ 洛谷 \(Description\) 给定一张部分边方向已确定的竞赛图.你需要给剩下的边确定方向,使得图中的三元环数量最多. \(n\leq100\). \(Solution\) 这种选择之 ...
- POJ 2677 旅行商问题 双调dp或者费用流
Tour Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3408 Accepted: 1513 Description ...
- luogu P5470 [NOI2019]序列 dp 贪心 费用流 模拟费用流
LINK:序列 考虑前20分 容易想到爆搜. 考虑dp 容易设\(f_{i,j,k,l}\)表示前i个位置 选了j对 且此时A选择了k个 B选择了l个的最大值.期望得分28. code //#incl ...
- [CF1525D] Armchairs (DP / 模拟费用流)
题面简述 一条线上等距地分布着 n n n 老鼠和 m m m 洞( m ≥ n m\geq n m≥n),这连续 n + m n+m n+m 个位置上要么是老鼠要么是洞,一个老鼠进一个洞,代价是所有 ...
- bzoj 1070: [SCOI2007]修车 费用流
1070: [SCOI2007]修车 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2785 Solved: 1110[Submit][Status] ...
- BZOJ 3171 循环格(费用流)
题意 一个循环格就是一个矩阵,其中所有元素为箭头,指向相邻四个格子.每个元素有一个坐标(行,列),其中左上角元素坐标为(0,0).给定一个起始位置(r,c),你可以沿着箭头防线在格子间行走.即如果(r ...
- BZOJ 1070 修车 【费用流】
Description 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同 的车进行维修所用的时间是不同的.现在需要安排这M位技术人员所维修的车及顺序, ...
随机推荐
- Linux 设备文件的创建和mdev
引子 本文是嵌入式企鹅圈开篇--<linux字符设备驱动剖析>的姐妹篇,在上述文章里面我们具体描写叙述了字符设备驱动框架涉及的驱动注冊.通过设备文件来訪问驱动等知识.并明白通过device ...
- web security
brute force cracking 暴力破解 Brute force (also known as brute force cracking) is a trial and error me ...
- doT.js的使用
引言 doT.js可以更好的在html端使用json数据. {{ }} for evaluation 模板标记符 {{= }} for interpolation 输出显示,默认变量名叫it {{! ...
- elasticsearch如何安全重启
elasticsearch如何安全重启节点 问题: elasticsearch集群,有时候可能需要修改配置,增加硬盘,扩展内存等操作,需要对节点进行维护升级.但是业务不能停,如果直接kill掉节 点, ...
- CentOS 6.5 下编译安装 Nginx 1.8.0
转自:https://i.cnblogs.com/EditPosts.aspx?postid=8303227&update=1 安装编译依赖的包 yum -y install gcc gcc- ...
- 新疆大学(新大)OJ xju 1009: 一带一路 prim求最短路径+O(n)素数筛选
1009: 一带一路 时间限制: 1 Sec 内存限制: 128 MB 题目描述 一带一路是去去年习大大提出来的建设“新丝绸之路经济带”和“21世纪海上丝绸之路”的战略构想.其中就包括我们新疆乌鲁木 ...
- js 拼接字符串,table等
var userTableStr=''; userTableStr +='<table width="750" height="33" border=&q ...
- 74HC165应用
管脚定义与内部逻辑图 注1:其中控制管脚有3个:SH/LD-QH-CLK,CLK INH硬件接VSS,SER和QH'悬空 原理:先拉低SH/LD,A-H置入芯片内部寄存器中,然后拉高SH/LD,锁住A ...
- HDU 1394 Minimum Inversion Number【 树状数组 】
题意:给出n个数,每次可以把第一个数挪到最后一个位置去,问这n种排列里面的最小逆序对数 先把最开始的逆序对数求出来 然后对于一个数a[i],比它小的数有a[i] - 1个,比它大的数有n - a[i] ...
- Python内置数据结构之列表list
1. Python的数据类型简介 数据结构是以某种方式(如通过编号)组合起来的数据元素(如数.字符乃至其他数据结构)集合.在Python中,最基本的数据结构为序列(sequence). Python内 ...