【题目链接】:http://codeforces.com/problemset/problem/724/E

【题意】



有n个城市;

这个些城市每个城市有pi单位的物品;

然后已知每个城市能卖掉si单位单位的物品;

且每个城市i能向城市j最多运送c单位的物品(这里j严格大于i);

问你最多能在这n个城市里面卖掉多少单位的物品;

【题解】



可以转化为最大流模型;

虚拟一个起点s和源点t;

在s和n个城市之间分别建n条边pi;

在n个城市和t之间分别建n条边si;

在n个城市之间(x,y)建n*(n-1)/2条边;这里(x< y)

然后从起点跑最大流就能得到答案;

因为n很大;

不能单纯地跑最大流;

根据最大流=最小割;

写个DP吧

每个点最后,肯定是只和s连、或者是和t连;

不可能说两条边都删掉;

则对于每个点,看他删掉的是哪条边;

/*
设f[i][j]表示前i个城市中,有j个城市和起点s相连的最小割;

f[i][j] = min(f[i-1][j-1]+s[i],f[i-1][j]+p[i]+j*c);
(删掉i和t的边,删掉i和起点s的边);
因为和起点s相连的点,可以从s到那个点
然后再到点i再到终点t,所以要多加上j*c;
即把那j条边删掉
f[i][0] = f[i-1][0]+p[i];//不能连i和s边了,即只能删掉i和s边了
f[i][i] = f[i-1][i-1]+s[i];//不能删i和s边了,即只能删掉i和t边了
*/

【Number Of WA】



0



【完整代码】

#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define ms(x,y) memset(x,y,sizeof x) typedef pair<int,int> pii;
typedef pair<LL,LL> pll; const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);
const int N = 1e4+100; LL f[2][N],p[N],s[N],c;
int n,now,pre; int main()
{
//freopen("F:\\rush.txt","r",stdin);
ios::sync_with_stdio(false),cin.tie(0);//scanf,puts,printf not use
cin >> n >> c;
rep1(i,1,n) cin >> p[i];
rep1(i,1,n) cin >> s[i];
rep1(i,1,n)
{
now = now^1;
f[now][0] = f[now^1][0]+p[i];
rep1(j,1,i-1)
f[now][j] = min(f[now^1][j-1]+s[i],f[now^1][j]+p[i]+j*c);
f[now][i] = f[now^1][i-1]+s[i];
}
LL ans = f[now][0];
rep1(i,1,n)
ans = min(ans,f[now][i]);
cout << ans << endl;
return 0;
}

【codeforces 724E】Goods transportation的更多相关文章

  1. 【codeforces 415D】Mashmokh and ACM(普通dp)

    [codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...

  2. 【31.72%】【codeforces 604B】More Cowbell

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  3. 【codeforces 754D】Fedor and coupons

    time limit per test4 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  4. 【codeforces 707E】Garlands

    [题目链接]:http://codeforces.com/contest/707/problem/E [题意] 给你一个n*m的方阵; 里面有k个联通块; 这k个联通块,每个连通块里面都是灯; 给你q ...

  5. 【codeforces 707C】Pythagorean Triples

    [题目链接]:http://codeforces.com/contest/707/problem/C [题意] 给你一个数字n; 问你这个数字是不是某个三角形的一条边; 如果是让你输出另外两条边的大小 ...

  6. 【codeforces 709D】Recover the String

    [题目链接]:http://codeforces.com/problemset/problem/709/D [题意] 给你一个序列; 给出01子列和10子列和00子列以及11子列的个数; 然后让你输出 ...

  7. 【codeforces 709B】Checkpoints

    [题目链接]:http://codeforces.com/contest/709/problem/B [题意] 让你从起点开始走过n-1个点(至少n-1个) 问你最少走多远; [题解] 肯定不多走啊; ...

  8. 【codeforces 709C】Letters Cyclic Shift

    [题目链接]:http://codeforces.com/contest/709/problem/C [题意] 让你改变一个字符串的子集(连续的一段); ->这一段的每个字符的字母都变成之前的一 ...

  9. 【Codeforces 429D】 Tricky Function

    [题目链接] http://codeforces.com/problemset/problem/429/D [算法] 令Si = A1 + A2 + ... + Ai(A的前缀和) 则g(i,j) = ...

随机推荐

  1. java开发环境配置(win8 64位)

    自己配置java环境时是自己上网找资料装的,,有讲的好的也有讲的不是很清晰的,,自己也入了几个坑..所以在这里自己整理了下win8配置JDK的教程. 下载JDK 首先我们需要下载java开发工具包JD ...

  2. SQL SEVER 元年是1900年

    用SQL语句求 本月第一天,怎么写? 可以这样写: SELECT DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0); 按照日期函数DATEDIFF的定义,第二个参数是开始日 ...

  3. MongoDB如何实现读写分离

    MongoDB如何实现读写分离 MongoDB复制集(Replica Set)通过存储多份数据副本来保证数据的高可靠,通过自动的主备切换机制来保证服务的高可用.但需要注意的时,连接副本集的姿势如果不对 ...

  4. day63-webservice 11.cxf整合spring

    如果我们有Spring配置文件,怎么把WebService整合到Spring里面,用Ioc容器来管理这个Bean. 做项目的时候一般都是分层:Dao层.Service层.Service层要调Dao层, ...

  5. iOS开发中UIDatePicker控件的使用方法简介

    iOS上的选择时间日期的控件是这样的,左边是时间和日期混合,右边是单纯的日期模式. 您可以选择自己需要的模式,Time, Date,Date and Time  , Count Down Timer四 ...

  6. Qt5.9 WebEngine 概述

    Qt WebEngine模块提供了一个web浏览器, 在不使用本地浏览器的情况下, 它可以很容易地把Web内容嵌入到Qt应用程序中. Qt WebEngine为渲染HTML, XHTML和SVG文档, ...

  7. Centos7下Docker的使用

    一.安装Docker 1.1.查看原有系统是否已经安装docker yum list installed | grep docker 1.2.如果有则不需要继续安装,想重新安装,先卸载 yum -y ...

  8. Canvas实现环形进度条

    Canvas实现环形进度条 直接上代码: <canvas width="200" height="200" >60%</canvas> ...

  9. RAP、Mock.js、Vue.js、Webpack

    最近做项目使用的是RAP1的接口,但是昨天开始,RAP1 出现了问题,接口都不能用了. 所以补充一下Mock.js的用法,以便在这种突发的情况时候时自己通过Mock的方式来处理接口. npm init ...

  10. less常用方法

    最近在开发中使用了less,总结一下less一些常用的方法: 1.可以定义变量 SASS允许使用变量,所有变量以$开头. $blue : #1875e7; div { color : $blue; } ...