博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TYVJ P1048 田忌赛马 Label:dp
阅读量:6341 次
发布时间:2019-06-22

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

描述

    中国古代的历史故事“田忌赛马”是为大家所熟知的。话说齐王和田忌又要赛马了,他们各派出N匹马,每场比赛,输的一方将要给赢的一方200两黄金,如果是平局的话,双方都不必拿出钱。现在每匹马的速度值是固定而且已知的,而齐王出马也不管田忌的出马顺序。请问田忌该如何安排自己的马去对抗齐王的马,才能赢取最多的钱?

输入格式

第一行为一个正整数n (n <= 1000) ,表示双方马的数量。
第二行有N个整数表示田忌的马的速度。
第三行的N个整数为齐王的马的速度。

输出格式

仅有一行,为田忌赛马可能赢得的最多的钱,结果有可能为负。

测试样例1

输入

92 83 71 
95 87 74

输出

200

代码

#include
#include
#include
#include
#define INF 1<<30using namespace std;bool cmp(int i,int j){ return i>j;}int N,f[3005][3005],a[3005],b[3005],c[3005][3005];int main(){// freopen("01.txt","r",stdin); for(int i=0;i<=N;i++) for(int j=0;j<=N;j++) f[i][j]=-INF; scanf("%d",&N);//田忌a 齐王b for(int i=1;i<=N;i++) scanf("%d",&a[i]); for(int i=1;i<=N;i++) scanf("%d",&b[i]); sort(a+1,a+N+1,cmp); sort(b+1,b+N+1,cmp); for(int i=1;i<=N;i++){
//田忌i 齐王j for(int j=1;j<=N;j++){ if(a[i]>b[j]) c[i][j]=1; else if(a[i]
=1)f[i][j]=max( f[i-1][j] + c[N-(i-j)+1][i] , f[i-1][j-1] + c[j][i] ); else f[i][j]= f[i-1][j] + c[N-(i-j)+1][i] ; /* if(j>=1) f[i][j]=max( f[i-1][j-1] + c[i][j] , f[i-1][j] + c[i][N-(i-j)+1] ); ** else f[i][j]= f[i-1][j] + c[i][N-(i-j)+1] ; //错误代码 */ } } int ans=0; for(int i=0;i<=N;i++) ans=max(f[N][i],ans); printf("%d\n",ans*200); return 0;}

之前看别人方程理解错了,然后就没有然后了,以下是引用的题解

DP方程

设f[i,j]表示齐王按从强到弱的顺序出马和田忌进行了i场比赛之后,田忌从“头”取了j匹较强的马,从“尾”取了i-j匹较弱的马,所能够得到的最大盈利。
状态转移方程如下:
F[I,j]=max{f[i-1,j]+c[n-(i-j)+1,i],f[i-1,j-1]+c[j,i]}
其中c[i,j]表示田忌的马和齐王的马分别按照由强到弱的顺序排序之后,田忌的第i匹马和齐王的第j匹马赛跑所能取得的盈利,胜为1,输为-1,平为0。
结果用最大的乘以200即可。

转载于:https://www.cnblogs.com/radiumlrb/p/5786490.html

你可能感兴趣的文章
python获取当前工作目录
查看>>
VUE中使用vuex,cookie,全局变量(少代码示例)
查看>>
grep -w 的解析_学习笔记
查看>>
量化交易之启航
查看>>
TX Text Control文字处理教程(3)打印操作
查看>>
CENTOS 7 如何修改IP地址为静态!
查看>>
MyCat分片算法学习(纯转)
查看>>
IO Foundation 3 -文件解析器 FileParser
查看>>
linux学习经验之谈
查看>>
mysqld_multi实现多主一从复制
查看>>
中介模式
查看>>
JS中将变量转为字符串
查看>>
servlet笔记
查看>>
JVM(五)垃圾回收器的前世今生
查看>>
CentOS 7 下安装 Nginx
查看>>
Spring Boot 自动配置之@EnableAutoConfiguration
查看>>
为了学习go我从0开始用beego写了一个简单个人博客(2)登陆管理
查看>>
职业女性:学会减压救自己!
查看>>
OSChina 周一乱弹 —— 这个需求很简单!
查看>>
OSChina 周一乱弹 —— 我当你是朋友,你却……
查看>>