题解:

最少平均分值是等于最佳匹配的权值和除上一个总的点数2*n

注意输入反过来

代码:

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
const int N=;
int n,lx[N],ly[N],T,w[N][N],k,d[N],t,ans,num,h[N],px[N],py[N];
int dfs1(int x)
{
px[x]=;
for (int i=;i<=n;i++)
{
if (py[i])continue;
t=lx[x]+ly[i]-w[x][i];
if (!t)
{
py[i]=;
if (!d[i]||dfs1(d[i]))
{
d[i]=x;
return ;
}
}
}
return ;
}
void dfs2(int x,int sum)
{
if (sum>ans) return;
if (x>n)
{
if (sum!=ans)return;
printf("Best Pairing %d\n",++num);
for (int i=;i<=n;i++)
printf("Supervisor %d with Employee %d\n",i,h[i]);
return;
}
for (int i=;i<=n;i++)
if (!py[i])
{
h[x]=i;
py[i]=;
dfs2(x+,sum-w[x][i]);
py[i]=;
}
return;
}
int main()
{
scanf("%d",&T);
for (int u=;u<=T;u++)
{
scanf("%d",&n);
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
{
scanf("%d",&k);
w[k][i]=-j;
}
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
{
scanf("%d",&k);
w[i][k]+=-j;
}
memset(ly,,sizeof(ly));
for (int i=;i<=n;i++)
{
lx[i]=w[i][];
for (int j=;j<=n;j++)
if (lx[i]<w[i][j])lx[i]=w[i][j];
}
memset(d,,sizeof(d));
for (int i=;i<=n;i++)
while ()
{
memset(px,false,sizeof(px));
memset(py,false,sizeof(py));
if (dfs1(i)) break;
t=1e9;
for (int j=;j<=n;j++)
if (px[j])
for (int k=;k<=n;k++)
if (!py[k]&&lx[j]+ly[k]-w[j][k]<t)
t=lx[j]+ly[k]-w[j][k];
for (int j=;j<=n;j++)
{
if (px[j]) lx[j]-=t;
if (py[j]) ly[j]+=t;
}
}
ans=;
for (int i=;i<=n;i++)
if (d[i]!=)ans-=w[d[i]][i];
printf("Data Set %d, Best average difference: %.6f\n",u,ans*0.5/n);
num=;
memset(h,,sizeof(h));
memset(py,false,sizeof(py));
dfs2(,);
if (u<T)puts("");
}
return ;
}

poj2400的更多相关文章

  1. ACM训练计划step 2 [非原创]

    (Step2-500题)POJ训练计划+SGU 经过Step1-500题训练,接下来可以开始Step2-500题,包括POJ训练计划的298题和SGU前两章200题.需要1-1年半时间继续提高解决问题 ...

  2. poj图论解题报告索引

    最短路径: poj1125 - Stockbroker Grapevine(多源最短路径,floyd) poj1502 - MPI Maelstrom(单源最短路径,dijkstra,bellman- ...

  3. POJ训练计划

    POJ训练计划 Step1-500题 UVaOJ+算法竞赛入门经典+挑战编程+USACO 请见:http://acm.sdut.edu.cn/bbs/read.php?tid=5321 一.POJ训练 ...

随机推荐

  1. 利用JS代码快速获得知网论文作为参考文献的引用文本

    写论文的时候,发现知网虽然提供了生成参考文献引用标注的功能,但是效率仍然不太高.我就忙里偷闲写了一段简单的脚本,能无延迟地生成这段引用文本.目前支持期刊论文和硕士论文. 代码: (function() ...

  2. GZFramework错误(升级修改)日志

    sqlserver下事务中处理出现为初始化selectcommand的connection属性修改CommandDataBase中的PrepareCommand方法

  3. timestamp类型在jsp页面输出格式化方法

    jsp页面使用了iterator迭代器,迭代器中有个属性名字为time,其类型为timestamp类型的,至于为什么是这个类型嘛,就是用navicat建好数据库直接映射出来的实体类,所以就是这个类型啦 ...

  4. javaee加密部署,tomcat使用自己的classloader解密

    http://www.2cto.com/kf/201312/264455.html [起因] 公司需要对一个web项目进行加密之后出售, 大家都知道的,class很好反编译, 所以需要对class文件 ...

  5. 【MSDN_C#】C#版本介绍

    C# 1,Visual Studio .NET 2002 首次发布 C# 1.1,Visual Studio .NET 2003 #line 杂注和 xml 文档注释 C# 2,Visual Stud ...

  6. 20145321 《Java程序设计》课程总结

    20145321 <Java程序设计>课程总结 读书笔记链接汇总 第一周读书笔记 第二周读书笔记 第三周读书笔记 第四周读书笔记 第五周读书笔记 第六周读书笔记 第七周读书笔记 第八周读书 ...

  7. 20145327 《Java程序设计》第八周学习总结

    20145327 <Java程序设计>第八周学习总结 教材学习内容总结 NIO使用频道(channel)来衔接数据节点,在处理数据时,NIO可以让你设定缓冲区(Buffer)容量,在缓冲区 ...

  8. 201453131《Java程序设计》实验三实验报告

    实验三 敏捷开发与XP实践 实验内容 •下载并学会使用git上传代码: •与同学结对,相互下载并更改对方代码,并上传: 实验步骤 下载并用git上传代码: •1.下载并安装好git,在cmd中输入gi ...

  9. 20145335郝昊《Java程序设计》课程总结

    20145335郝昊<Java程序设计>课程总结 1.读书笔记汇总 第一周学习总结:http://www.cnblogs.com/20145335hh/p/5244638.html 第二周 ...

  10. Quick Search FAQ

    Q: Why does it jump to an incorrect page? A: Some categories, such as twitter, may need to log in in ...