LightOJ
来源:互联网 发布:led显示屏输入软件 编辑:程序博客网 时间:2024/06/14 22:08
原题地址:点击打开链接
#include<stdio.h>#include<string.h>#include<vector>#include<queue> #define INF 1<<31-1#define min(x,y)(x<y?x:y)using namespace std;struct Edge{int to;int cap;int rev;int cost;};vector<Edge>g[110];int prev[110];int pree[110];void add_edge(int from,int to,int cap,int cost){g[from].push_back((Edge){to,cap,g[to].size(),cost});g[to].push_back((Edge){from,0,g[from].size()-1,-cost});}int dis[110];int min_cost_flow(int s,int t,int f) { int u,i,v,d,res=0; while(f>0) { bool update=true; for(i=1;i<=t;i++) dis[i]=-INF; dis[s]=0; while(update) { update=false; for(u=s;u<=t;u++) { if(dis[u]==-INF) continue; for(i=0;i<g[u].size();i++) { Edge &e=g[u][i]; if(e.cap>0&&dis[e.to]<dis[u]+e.cost) { dis[e.to]=dis[u]+e.cost; prev[e.to]=u; pree[e.to]=i; update=true; } } } } if(dis[t]==-INF) break; d=INF; for(u=t;u!=s;u=prev[u]) { Edge e=g[prev[u]][pree[u]]; d=min(e.cap,d); } for(u=t;u!=s;u=prev[u]) { Edge &e=g[prev[u]][pree[u]]; e.cap-=d; g[e.to][e.rev].cap+=d; } res+=dis[t]; f-=d; } return res; } int main(){int c,n,i,j,cost,s,t,k=0;scanf("%d",&c);while(c--){scanf("%d",&n);s=0;t=n*2+1;for(i=s;i<=t;i++)g[i].clear();for(i=1;i<=n;i++)for(j=1;j<=n;j++){scanf("%d",&cost);add_edge(i,j+n,1,cost);}for(i=1;i<=n;i++){add_edge(s,i,1,0);add_edge(i+n,t,1,0);}int res=min_cost_flow(s,t,n);printf("Case %d: %d\n",++k,res);}return 0;} /*224 33 131 4 55 7 65 8 8*/
0 0
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- [LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- 蓝牙扫描 LeScanCallback 方法 不回调
- ZOJ 3963 Heap Partition(贪心)
- PXE网络安装Linux操作系统原理与详细过程
- 内容提供器
- APP全栈工程师修炼之路(一)
- LightOJ
- iOS8下 presentViewController的透明部分 变成黑色不透明了
- IAR 中 CC2530工程生成.hex文件
- 磁盘分区方法MBR与GPT
- 论c++的二分函数lower_bound
- 51nod 1265 四点共面(结论)
- 操作系统存储管理之分段式与段页式虚拟存储系统
- 存储过程 自我学习
- 私有pod