题目大意:

解题关键:指派问题,待更。

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<iostream>
#include<cmath>
#include<vector>
#include<queue>
#define inf 0x3f3f3f3f
#define MAX_V 10010
using namespace std;
typedef long long ll;
typedef pair<int,int>P;
struct edge{int to,cap,cost,rev;};
int V;
vector<edge>G[MAX_V];
int h[MAX_V],dist[MAX_V],prevv[MAX_V],preve[MAX_V];
void add_edge(int from,int to,int cap,int cost){
G[from].push_back((edge){to,cap,cost,G[to].size()});
G[to].push_back((edge){from,,-cost,G[from].size()-});
} int min_cost_flow(int s,int t,int f){
int res=;
fill(h,h+V,);
while(f>){
priority_queue<P,vector<P>,greater<P> >que;
fill(dist,dist+V+,inf);
dist[s]=;
que.push(P(,s));
while(!que.empty()){
P p=que.top();que.pop();
int v=p.second;
if(dist[v]<p.first) continue;
for(int i=;i<G[v].size();i++){
edge &e=G[v][i];
if(e.cap>&&dist[e.to]>dist[v]+e.cost+h[v]-h[e.to]){
dist[e.to]=dist[v]+e.cost+h[v]-h[e.to];
prevv[e.to]=v;
preve[e.to]=i;
que.push(P(dist[e.to],e.to));
}
}
}
if(dist[t]==inf) return -;
for(int v=;v<V;v++) h[v]+=dist[v]; //增广
int d=f;
for(int v=t;v!=s;v=prevv[v]) d=min(d,G[prevv[v]][preve[v]].cap);
f-=d;
res+=d*h[t];
for(int v=t;v!=s;v=prevv[v]){
edge &e=G[prevv[v]][preve[v]];
e.cap-=d;
G[v][e.rev].cap+=d;
}
}
return res;
}
int n,m,t1,t2,t3,t4;
int z[][];
int main(){
int _;
scanf("%d",&_);
while(_--){
memset(G,,sizeof G);
scanf("%d%d",&n,&m);
for(int i=;i<n;i++){
for(int j=;j<m;j++){
scanf("%d",&z[i][j]);
}
}
int s=n+n*m,t=s+;
V=t+;
for(int i=;i<n;i++) add_edge(s,i,,);
for(int j=;j<m;j++){
for(int k=;k<n;k++){
add_edge(n+j*n+k,t,,);
for(int i=;i<n;i++){
add_edge(i,n+j*n+k,,(k+)*z[i][j]);
}
}
}
printf("%.6f\n",(double)min_cost_flow(s,t,n)/n);
}
return ;
}

最新文章

  1. AngularJS 初用总结
  2. 常用JQ特效代码
  3. 20151214下拉列表:DropDownList
  4. 为什么要提倡“Design Pattern呢
  5. [Math]Divide Two Integers
  6. 当tomcat有两个链接数据库的应用同时运行可能冲突
  7. TEXT文本编辑框3 点击按钮添加文本至文本输入框
  8. gzy的摄影梦
  9. 单元测试系列之八:Sonar 数据库表关系整理一(续)
  10. div和span标签
  11. Python基础-入门之路PYTHON-包 相对导入&amp;绝对导入
  12. Selenium模拟浏览器抓取淘宝美食信息
  13. python中的isalnum、isalpha、istitle、isspace、islower、isupper、isdigit
  14. PHP将CMYK颜色值和RGB颜色相互转换的例子
  15. Vue.js教程--基础2(事件处理 表单输入绑定
  16. java笔记--线程的插队行为
  17. EasyUI 条件设置行背景颜色
  18. NanoPiM1开箱测试
  19. C#中如何防止Excel做科学计算法转换
  20. w3schools juerymobile

热门文章

  1. selenium与firefox版本不兼容
  2. 《Advanced Bash-scripting Guide》学习(十九):两个整数的最大公约数
  3. c、rust、golang、swift性能比较
  4. axure下载及汉化
  5. Shiro安全配置
  6. element-ui树结构懒加载
  7. hadoop2.5.2 安装与部署
  8. MySql数据库约束
  9. 七、python沉淀之路--集合
  10. 5.7 Windows常用网络命令