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

根据题意列方程,然后用网络流解线性规划。

题解直接贴ByVoid的吧,太神了:https://www.byvoid.com/blog/noi-2008-employee/

 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
const int INF=<<;
int inline readint(){
int Num;char ch;
while((ch=getchar())<''||ch>'');Num=ch-'';
while((ch=getchar())>=''&&ch<='') Num=Num*+ch-'';
return Num;
}
int n,m;
int A[];
int S,T;
int to[],ne[],w[],c[],fir[],cnt=;
void add(int a,int b,int x,int y=INF){
to[cnt]=b,w[cnt]=x,c[cnt]=y,ne[cnt]=fir[a],fir[a]=cnt++;
to[cnt]=a,w[cnt]=-x,c[cnt]=,ne[cnt]=fir[b],fir[b]=cnt++;
}
int dis[],pre[];
bool in[];
queue <int> q;
bool Spfa(){
memset(dis,/,sizeof(dis));
q.push(S);
in[S]=true;
dis[S]=;
int u;
while(!q.empty()){
u=q.front();
q.pop();
in[u]=false;
for(int i=fir[u];i!=-;i=ne[i]){
int v=to[i];
if(dis[v]>dis[u]+w[i]&&c[i]){
dis[v]=dis[u]+w[i];
pre[v]=i;
if(!in[v]){
q.push(v);
in[v]=true;
}
}
}
}
return dis[T]!=dis[];
}
void Mcmf(){
int cost=;
pre[S]=-;
while(Spfa()){
int f=INF;
for(int i=pre[T];i!=-;i=pre[to[i^]]) f=min(f,c[i]);
for(int i=pre[T];i!=-;i=pre[to[i^]]){
c[i]-=f;
c[i^]+=f;
}
cost+=dis[T]*f;
}
printf("%d\n",cost);
}
int main(){
n=readint();
m=readint();
for(int i=;i<=n;i++) A[i]=readint();
memset(fir,-,sizeof(fir));
S=n+;
T=n+;
for(int i=;i<=n+;i++){
if(A[i]>=A[i-]) add(S,i,,A[i]-A[i-]);
else add(i,T,,A[i-]-A[i]);
if(i>) add(i,i-,);
}
for(int i=;i<=m;i++){
int a=readint(),
b=readint(),
c=readint();
add(a,b+,c);
}
Mcmf();
return ;
}

最新文章

  1. db2 游标使用
  2. Wrangle – 响应式的,触摸友好的多选插件
  3. Angular.js为什么如此火呢?
  4. 如何为不定高度(height:auto)的元素添加CSS3 transition-property:height 动画
  5. git clone 出错SSL certificate problem, verify that the CA cert is OK.
  6. gem安装时出现 undefined method `size&#39; for nil:NilClass (NoMethodError) 的解决办法
  7. 2014.12.01 B/S之windows8.1下安装IIS
  8. cocos2d-x游戏开发(十六)帧动画
  9. JDK自己主动拆箱下,三目运算符的潜规则
  10. xml解析(4)
  11. HTML基本功之文档结构
  12. File System 之本地文件系统
  13. Go学习笔记03-附录
  14. LCA最近公共祖先(倍增版)
  15. python3-基础6
  16. 单色三角形(hdu-5072
  17. IOS 数据存储之 Core Data详解
  18. Linux学习笔记:Jenkins安装
  19. 【分享】熟练的Java程序员应该掌握哪些技术?
  20. 每日英语:How Your Knees Can Predict the Weather

热门文章

  1. Linux Shell_test
  2. Apache Hadoop 和Hadoop生态圈
  3. jupyter环境的安装
  4. JSON: Circular Dependency Errors
  5. u-boot支持LCD显示(基于TQ2440)【转】
  6. 原生js写简单轮播图方式1-从左向右滑动
  7. 关于页面上输入框中 空格 、0 、NULL 的处理 示例
  8. HDU1402:A * B Problem Plus(FFT与大数乘法)
  9. hdu5410(完全背包变形)
  10. Python科学计算工具包