bzoj1061 [Noi2008]志愿者招募(线性规划/费用流)

来源:互联网 发布:linux spoof 编辑:程序博客网 时间:2024/05/24 15:39

这题太神了!但是听说是单纯形法求解线性规划裸题???看样子网络流和线性规划有着莫大的联系啊,待研究。
此题基本就是用网络流求解了一个等式的最优解?
附上大神题解:https://www.byvoid.com/zhs/blog/noi-2008-employee

#include <cstdio>#include <cstring>#include <algorithm>#include <queue>using namespace std;#define ll long long#define inf 0x3f3f3f3f#define N 1010inline int read(){    int x=0,f=1;char ch=getchar();    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}    while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();    return x*f;}int n,m,h[N],num=1,ans=0,dis[N],path[N],T=1005;bool inq[N];struct edge{    int to,next,w,c;}data[25000];inline void add(int x,int y,int w,int c){    data[++num].to=y;data[num].next=h[x];h[x]=num;data[num].w=w;data[num].c=c;    data[++num].to=x;data[num].next=h[y];h[y]=num;data[num].w=0;data[num].c=-c;}inline bool spfa(){    deque<int>q;memset(dis,inf,sizeof(dis));memset(path,0,sizeof(path));    q.push_back(0);inq[0]=1;dis[0]=0;    while(!q.empty()){        int x=q.front();q.pop_front();inq[x]=0;        for(int i=h[x];i;i=data[i].next){            int y=data[i].to;if(!data[i].w) continue;            if(dis[x]+data[i].c<dis[y]){                dis[y]=dis[x]+data[i].c;path[y]=i;                if(!inq[y]){                    if(!q.empty()&&dis[y]<dis[q.front()]) q.push_front(y);                    else q.push_back(y);inq[y]=1;                }            }        }    }return path[T];}int main(){//  freopen("a.in","r",stdin);    n=read();m=read();int last=0;    for(int i=1;i<=n;++i){        int x=read();if(x-last>0) add(0,i,x-last,0);        else add(i,T,last-x,0);last=x;    }add(n+1,T,last,0);    for(int i=1;i<=m;++i){        int x=read(),y=read(),val=read();add(x,y+1,inf,val);    }for(int i=1;i<=n;++i) add(i+1,i,inf,0);    while(spfa()){        int now=T,low=inf;        while(path[now]) low=min(low,data[path[now]].w),now=data[path[now]^1].to;        now=T;ans+=low*dis[T];        while(path[now]) data[path[now]].w-=low,data[path[now]^1].w+=low,now=data[path[now]^1].to;    }printf("%d\n",ans);    return 0;}
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 经商 下海经商 公务员经商 经商开店 经商技巧 如何经商 经商书籍 经商必读 怎样经商 农村经商 经商办企业 经商十句名言 读书不如经商驳论文 想经商学什么专业 经商之道的名言 经商之信的名言警句 如何经商做生意技巧 经商是什么意思 经商什么意思 经商之道必读之书 经商之道白手起家 如何经商之道 如何创业经商 如何做生意技巧 做买卖的窍门 生意经营之道经验心得 做生意的技巧及经验 卖东西的说话技巧 做生意的技巧 经营之道 小区做生意 怎样去做生意 做生意的经验 做生意选项目 怎么学习做生意 怎样自己做生意 云南做生意 上班族如何做生意 小本做生意 做生意好做吗 10万做生意