关闭

poj 2287 Tian Ji -- The Horse Racing

标签: algorithm贪心
633人阅读 评论(0) 收藏 举报
分类:
poj 2287 Tian Ji -- The Horse Racing

题意:
田忌赛马 
如果3匹马变成1000匹,齐王仍然让他的马按从优到劣的顺序出赛,田忌可以按任意顺序选择他的赛马出赛。赢一局,田忌可以得到200两银子,输一局,田忌就要输掉200两银子,平局的话不输不赢。 
请问田忌最多能赢多少银子?

思路:
贪心;
如果当前最好的马可以胜齐王最好的马,那么让这两匹马比一场;
如果当前最差的马能胜齐王最差的马,那么让这两匹马比一场;
如果上面两个条件都不满足,那么让当前最差的马和齐王最好的马比一场。

/*poj 2287
  题意:
  田忌赛马 
  如果3匹马变成1000匹,齐王仍然让他的马按从优到劣的顺序出赛,田忌可以按任意顺序选择他的赛马出赛。赢一局,田忌可以得到200两银子,输一局,田忌就要输掉200两银子,平局的话不输不赢。 
  请问田忌最多能赢多少银子?
  思路:
  贪心;
  如果当前最好的马可以胜齐王最好的马,那么让这两匹马比一场;
  如果当前最差的马能胜齐王最差的马,那么让这两匹马比一场;
  如果上面两个条件都不满足,那么让当前最差的马和齐王最好的马比一场。
 */
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=1005;
int a[N],b[N];
void gao(int n){
	int p1=0,p2=0;
	int q1=n-1,q2=n-1;
	int ans=0;
	while(p1<=q1){
		if(a[p1]>b[p2]){
			++p1;
			++p2;
			++ans;
		}
		else if(a[q1]>b[q2]){
			--q1;
			--q2;
			++ans;
		}
		else{
			if(a[p1]!=b[q2])
				--ans;
			++p1;
			--q2;
		}
	}
	printf("%d\n",ans*200);
}
int main(){
	int n;
	while(scanf("%d",&n) && n){
		for(int i=0;i<n;++i)
			scanf("%d",&a[i]);
		for(int i=0;i<n;++i)
			scanf("%d",&b[i]);
		sort(a,a+n);
		sort(b,b+n);
		gao(n);
	}
	return 0;
}


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

【杭电oj】1052 - Tian Ji -- The Horse Racing(田忌赛马,贪心 & 双端队列)

Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s...
  • wyg1997
  • wyg1997
  • 2016-04-17 15:18
  • 303

Tian Ji -- The Horse Racing(田忌赛马模拟)+贪心

Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission...
  • wenlovingliu
  • wenlovingliu
  • 2013-04-20 17:32
  • 402

poj 2287 Tian Ji -- The Horse Racing 贪心思想在动态规划上的应用

题意: 田忌赛马,赢一场田忌获得200两黄金平一场不获得黄金输一场失去200两黄金 求田忌的最大收益 分析: 有以下贪心策略: 1 如果田忌剩下的马中最强的马都赢不了齐王剩下的最强的马,那么就应该用最差的一匹马去输给齐王最强的马。 2 如果田忌剩下的马中最强的马可以赢齐王剩下的最强的马,...
  • zp___waj
  • zp___waj
  • 2016-07-25 17:18
  • 291

Tian Ji -- The Horse Racing(考虑周到或者省去相等)

Tian Ji -- The Horse Racing Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 1...
  • u011194397
  • u011194397
  • 2013-08-04 10:02
  • 312

【贪心】HDU 1052 Tian Ji -- The Horse Racing n匹马的“田忌赛马”

题意:田忌赛马。田忌和齐王各有n匹马,输入田忌的马的速度和齐王的马的速度。每一轮田忌赢了就得200两银子,平就得0两,输了就失去200两银子。问田忌最多能得到多少。题目的策略是贪心,分析见leokan大牛的blog: http://hi.baidu.com/leokan/blog/item...
  • lasolmi
  • lasolmi
  • 2014-08-29 21:47
  • 676

贪心和DP POJ2287 田忌赛马

题目大意:给出n
  • Hatsune__Miku
  • Hatsune__Miku
  • 2014-07-18 10:53
  • 781

hdu 1052 Tian Ji -- The Horse Racing 可恶的贪心-------也算是经典贪心题吧,对于一般人来说,不看题解,应该很难做出来吧

Problem Description Here is a famous story in Chinese history. "That was about 2300 years ago. General Tian Ji was a high official in the countr...
  • Lionel_D
  • Lionel_D
  • 2015-03-04 15:19
  • 760

田忌赛马 poj 2287 (贪心,动态规划,贪心+动态规划)

题目链接 贪心 ;1:如果田忌的最快马快于齐王的最快马,比一场            2: 如果田忌的最快马慢于齐王的最快马,则用田忌的最慢马和齐王的最快马比赛一场  ...
  • xiaosshhaa
  • xiaosshhaa
  • 2017-03-20 21:33
  • 228

poj 2287 田忌赛马 贪心

点击打开链接 #include #include #include using namespace std; const int M =1100; int a[M],b[M],n,used[M]; int main() { while(cin>>n&&n) ...
  • Jeremy1149
  • Jeremy1149
  • 2016-07-26 11:59
  • 193

poj 2287 贪心(田忌赛马)

题意:田忌赛马。每匹马给定一个能力值,赢一场赢200元,输一场输200元,平局钱数不变。问收益最大。 思路(http://blog.csdn.net/zhang20072844/article/details/8126344):贪心策略:1,如果田忌的最快马快于齐王的最快马,则两者比。 (因为若...
  • dumeichen
  • dumeichen
  • 2015-02-12 20:38
  • 320
    个人资料
    • 访问:150584次
    • 积分:3548
    • 等级:
    • 排名:第10801名
    • 原创:213篇
    • 转载:3篇
    • 译文:0篇
    • 评论:43条
    最新评论