博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu3315 /最大权最佳匹配(最大权下尽量不改变次序)(有权田忌赛马类问题)/费用流...
阅读量:7122 次
发布时间:2019-06-28

本文共 1883 字,大约阅读时间需要 6 分钟。

题意:2个人比赛,每场比赛有得分,每场每人派一支圣兽( brute ,字典翻译为畜生,感觉这里不太符╮(╯▽╰)╭),有攻击力和血条。。。一堆规则。。。

合理安排,让1号人获得最大分数,并尽量不要改变原来出场顺序(1,2,3.。。n),并求出相似度(没改变的场数/n)

思路:显然建二分图,赢的话就连负边,输就是正边,x->y,,再跑 s->t费用流,按题意关键是如何在最大费用情况下,尽量流 i-->i`的边,:扩大主要费用法费用扩大比n稍大倍,这里扩大100倍,那么如果是 i-->i`的边,就费用再-1(最多-n,也不影响总费用),所以最后结果取负后,如果ans<100(相当于是费用流0)输,结果为ans/100,取i-->i`的边个数为 ans%100(自然)。

ps:还调了半天,因为题意没有理解到位!第i场比赛分数,按1号人物的圣兽编号为准!以后一定先看样例!

#include
#include
#include
#include
using namespace std;const int maxv=200;const int maxe=200*200*2+800;const int inf=0x3f3f3f3f;int nume=0;int e[maxe][4];int head[maxv];int n,m,k;void inline adde(int i,int j,int c,int w){ e[nume][0]=j;e[nume][1]=head[i];head[i]=nume; e[nume][2]=c;e[nume++][3]=w; e[nume][0]=i;e[nume][1]=head[j];head[j]=nume; e[nume][2]=0;e[nume++][3]=-w;}int inq[maxv];int pre[maxv];int prv[maxv];int d[maxv];int val[maxv];int hi[maxv];int pi[maxv];int ai[maxv];int bi[maxv]; //val该圣兽对应分数(以我方为标准) pi:我方圣兽血,hi敌血,ai我攻击力,bi敌攻击力bool spfa(int &sum,int &flow){ int s=2*n,t=2*n+1; for(int i=0;i<=t;i++) { inq[i]=0; d[i]=inf; } queue
q; q.push(s); inq[s]=1; d[s]=0; while(!q.empty()) { int cur=q.front(); q.pop(); inq[cur]=0; for(int i=head[cur];i!=-1;i=e[i][1]) { int v=e[i][0]; if(e[i][2]>0&&d[cur]+e[i][3]
=count2)return 1; else return 0;}void read_build(){ for(int j=0;j
%d:f %dw %d\n",i,e[j][0],e[j][2],e[j][3]); }*/}int main(){ while(~scanf("%d",&n)&&n!=0) { init(); read_build(); int flow=0; int ans=-mincost(flow); if(ans<100) //这里是<100,因为现在已经取反! printf("Oh, I lose my dear seaco!\n"); else printf("%d %.3f%%\n",ans/100,(ans%100)*1.0/n*100); } return 0;}

转载于:https://www.cnblogs.com/yezekun/p/3925700.html

你可能感兴趣的文章
如何在gitlab上下载其他人的私有项目
查看>>
Android性能优化工具之TraceView
查看>>
Executor 与 ExecutorService
查看>>
事务的隔离级别(Transaction isolation levels)
查看>>
国内maven镜像
查看>>
链表的各种操作(Java实现)
查看>>
git命令行下怎么查看当前分支是基于哪一个分支的,以决定是否可以执行git rebase...
查看>>
十进制小数的二进制,八进制,十六进制转换方法
查看>>
一整套WordPress模板制作的教程
查看>>
CAP理论
查看>>
js中Element的兼容问题
查看>>
对象访问
查看>>
QWebView中点击链接的处理
查看>>
指针悬挂
查看>>
修改索引从1开始
查看>>
oss挂载迁移操作手册
查看>>
一篇文章搞定前端面试
查看>>
Memcached学习
查看>>
ANT clean ear 字符串错误
查看>>
LINUX下查看CPU使用率的命令
查看>>