网站编辑心得体会申请网站空间
网站编辑心得体会,申请网站空间,网站建设企业的市场分析,潍坊网站制作软件题目描述 GG 公司有 nn 个沿铁路运输线环形排列的仓库#xff0c;每个仓库存储的货物数量不等。如何用最少搬运量可以使 nn 个仓库的库存数量相同。搬运货物时#xff0c;只能在相邻的仓库之间搬运。 输入输出格式 输入格式#xff1a; 文件的第 11 行中有 11 个正整数 nn … 题目描述 GG 公司有 nn 个沿铁路运输线环形排列的仓库每个仓库存储的货物数量不等。如何用最少搬运量可以使 nn 个仓库的库存数量相同。搬运货物时只能在相邻的仓库之间搬运。 输入输出格式 输入格式 文件的第 11 行中有 11 个正整数 nn 表示有 nn 个仓库。 第 22 行中有 nn 个正整数表示 nn 个仓库的库存量。 输出格式 输出最少搬运量。 输入输出样例 输入样例#1 5 17 9 14 16 4 输出样例#1 11 说明 1 \leq n \leq 1001≤n≤100 解题思路 第一种方法就是环形均分纸牌和糖果传递一模一样。 第二种方法是网络流建立超级源点SS向比平均值大的连一条容量为a[i]-平均值花费为0的边建立超级源点T比平均值小的点向T连一条容量为平均值-a[i]花费为0的边然后每个点向它左右连一条容量为inf花费为1的边然后跑费用流即可。 代码 #includeiostream
#includecstdio
#includecstring
#includequeueusing namespace std;
const int MAXN 10005;
const int inf 0x3f3f3f3f;inline int rd(){int x0,f1;char chgetchar();while(!isdigit(ch)) {fch-?0:1;chgetchar();}while(isdigit(ch)) {x(x1)(x3)ch-0;chgetchar();}return f?x:-x;
}int n,a[MAXN],sum,head[MAXN],cnt1,S,T;
int to[MAXN1],nxt[MAXN1],val[MAXN1],cost[MAXN1];
int incf[MAXN],pre[MAXN],dis[MAXN],ans;
bool vis[MAXN];
queueint Q;inline void add(int bg,int ed,int w,int c){to[cnt]ed,nxt[cnt]head[bg],val[cnt]w,cost[cnt]c,head[bg]cnt;to[cnt]bg,nxt[cnt]head[ed],val[cnt]0,cost[cnt]-c,head[ed]cnt;
}bool spfa(){memset(vis,false,sizeof(vis));memset(dis,0x3f,sizeof(dis));while(Q.size()) Q.pop();dis[S]0,vis[S]1,Q.push(S),incf[S]inf;while(Q.size()){int xQ.front();Q.pop();for(register int ihead[x];i;inxt[i]){int uto[i];if(val[i] dis[x]cost[i]dis[u]){dis[u]dis[x]cost[i];pre[u]i;incf[u]min(incf[x],val[i]);if(!vis[u]) vis[u]1,Q.push(u);}}vis[x]0;}if(dis[T]inf) return false;return true;
}void update(){int xT;while(x!S){int ipre[x];val[i]-incf[T];val[i^1]incf[T];xto[i^1];}ansdis[T]*incf[T];
}int main(){nrd();S0,Tn1;for(register int i1;in;i) a[i]rd(),suma[i];sum/n;for(register int i1;in;i){a[i]-sum;if(a[i]0) add(S,i,a[i],0);else add(i,T,-a[i],0);}for(register int i2;in;i) add(i,i-1,inf,1),add(i,i1,inf,1);add(1,2,inf,1),add(1,n,inf,1);add(n,n-1,inf,1),add(n,1,inf,1);while(spfa()) update();coutansendl;return 0;
} 转载于:https://www.cnblogs.com/sdfzsyq/p/9676847.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/86289.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!