Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >POJ 2287 田忌赛马(贪心)

POJ 2287 田忌赛马(贪心)

作者头像
Michael阿明
发布于 2021-02-20 02:47:56
发布于 2021-02-20 02:47:56
54100
代码可运行
举报
运行总次数:0
代码可运行

1. 题目

1.1 题目链接

http://poj.org/problem?id=2287

1.2 题目大意

双方各有n匹战斗力各异的马,分别派出来PK,假设对方先出牌,我方后出,求我方最多能胜几场

1.3 解题思路

  • 对方出来战斗力k的马
  • 我方派出战斗力比k大的且最弱的马,赢,保存实力更高的马
  • 若均无法战胜对方,派出最弱的马,让你赢个最弱的,保存实力

2. Accepted 代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * @description: poj2287田忌赛马(贪心)
 * @author: michael ming
 * @date: 2019/7/2 23:55
 * @modified by: 
 */
#include <iostream>
#include <algorithm>
using namespace std;
bool comp(int a, int b)
{
    return a > b;
}
int main()
{
    int i, j, iend, jend, n, money;
    int tianji[1001], king[1001];
    while(cin >> n && n != 0)
    {
        for(i = 0; i < n; ++i)
            cin >> tianji[i];
        for(j = 0; j < n; ++j)
            cin >> king[j];
        sort(tianji, tianji+n, comp);//从大到小排序
        sort(king, king+n, comp);//从大到小排序
        i = j = 0;
        iend = jend = n-1;
        money = 0;
        while(i <= iend)
        {
            if(tianji[i] > king[j])
            //我方能打赢所有的,那么我就打掉一个最厉害的
            {
                money += 200;
                i++,j++;
            }
            else if(tianji[i] < king[j])
            //我方最大的都比别人小,让最弱的出战
            {
                money -= 200;
                iend--,j++;
            }
            else//两边最厉害的一样
            {
                if(tianji[iend] > king[jend])
                //最弱的马都能打败你的最弱马,那就用最小实力的
                {
                    money += 200;
                    iend--,jend--;
                }
                else if(tianji[iend] < king[jend])
                //我最弱的马没有胜算,让给你最强的马吃掉
                {
                    money -= 200;
                    iend--,j++;
                }
                else//两边最厉害的,和最弱的都一样,
                {
                    if(tianji[iend] < king[j])
                        money -= 200;//我最弱的给你最强的吃掉
                    iend--,j++;
                    //如果tianji[iend] == king[j]
                    //说明剩余两边的马全部相等,打平,金钱不变,下标挪一下
                }
            }
        }
        cout << money << endl;
    }
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
poj supermaket (贪心)
http://poj.org/problem?id=1456 #include<cstring> #include<iostream> #include<algorithm> using namesp
瑾诺学长
2018/09/21
2860
POJ 2453 贪心应用
1. 题目 1.1 题目链接 http://poj.org/problem?id=2453 1.2 题目大意 一个数x的二进制表示有n个1,求一个有相同个数1的二进制数(比x大,且要最小的) 1.3
Michael阿明
2021/02/20
2740
POJ 2453 贪心应用
LeetCode 1337. 方阵中战斗力最弱的 K 行(优先队列)
给你一个大小为 m * n 的方阵 mat,方阵由若干军人和平民组成,分别用 0 和 1 表示。
Michael阿明
2020/07/13
4930
POJ 1804
题目:http://poj.org/problem?id=1804 大意:给你一串数字,排序。求出最少的交换次数  \ 我用归并做的 #include<iostream> #include<cstri
瑾诺学长
2018/09/21
3830
POJ3723 《挑战程序设计竞赛》踩坑
我看书上的代码,觉得这一行有错误, //这里为什么要加上女生的人数而不是男生的人数?我认为应该加男生的人数 es[j].v = v+N; 所以我就没这样写,我写的是 es[j].v = v+M; 在codeblocks运行的好好的,来了poj一直报错,debug两个多小时,终于发现,书里的题目和poj上的题目,x,y表示的正好相反啊啊啊啊啊啊啊!!!!!!!!! 书里说,(x,y,d)表示的是第x号男兵和第y号女兵的亲密度是d poj的原题说的是第x号女兵和第y号男兵的亲密度是d!!! ---- 好了
kalifa_lau
2018/04/28
6850
poj 2375「建议收藏」
这道题是一道关于强连通分量的题目,不过这道题给出的图比较特殊,所以在求强连通分量时,可以采用广搜来做。
全栈程序员站长
2022/07/01
2130
POJ 1804 逆序数 解题(归并排序)
文章目录 解法1:直接双重循环求解,n*n复杂度 解法2:采用归并排序求解,复杂度nlgn 题目链接 http://poj.org/problem?id=1804 题目大意: 让一串无
Michael阿明
2021/02/20
4430
POJ 1804 逆序数 解题(归并排序)
HDUOJ-------1052Tian 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): 17221    Accepted Submission(s): 4998 Problem Description Here is a famous story in Chinese history. "That was about 23
Gxjun
2018/03/22
1.6K0
HDUOJ-------1052Tian Ji -- The Horse Racing(田忌赛马)
POJ 1363 火车厢排队问题(栈)
题目大意: A站有编号为1到N,N最大1000,的车厢,车厢进入中转station了就不能回到A,只能停在station内或者进入B站,问能不能按照给定的顺序排成那样的车厢号。
Michael阿明
2021/02/20
6180
POJ 1363 火车厢排队问题(栈)
POJ 2209 The King(简单贪心)
The King Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7499 Accepted: 4060 Description Once upon a time in a country far away lived a king and he had a big kingdom. He was a very clever king but he had one weakness -- he could co
Angel_Kitty
2018/04/08
6170
POJ 1581 优先队列 priority_queue -- 比赛胜者求解
给定选手姓名,及答题提交次数(提交正确前,错误一次罚20分),每题的做题时间罚分(未正确作答的不罚分),最后求谁是胜出者(优先条件,答对题目多,次要条件,总罚分最低)。
Michael阿明
2021/02/20
4620
POJ 1581 优先队列 priority_queue -- 比赛胜者求解
POJ1003/1004/1005/1207/3299/2159/1083/3094/2388解题(刷一波水题)
POJ 1003 题目链接 http://poj.org/problem?id=1003 大意:长度=1/2+1/3+…+1/n,给定长度值,求n #include<iostream> usi
Michael阿明
2021/02/20
2150
POJ1003/1004/1005/1207/3299/2159/1083/3094/2388解题(刷一波水题)
POJ 3690 找星座(2D匹配)(未解答)
给定大的矩阵(天空的样子),然后给定若干小矩阵(可能的天空的一角) 求有多少个小矩阵是从大矩阵里抠出来的(2D匹配)
Michael阿明
2021/02/20
4000
POJ 3690 找星座(2D匹配)(未解答)
POJ 1979 DFS
题目链接:http://poj.org/problem?id=1979 #include<cstring> #include<iostream> using namespace std; int n=
瑾诺学长
2018/09/21
3460
疯子的算法总结(四)贪心算法
解决最优化问题的算法一般包含一系列的步骤,每一步都有若干的选择。对于很多最优化问题,只需要采用简单的贪心算法就可以解决,而不需要采用动态规划方法。贪心算法使所做的局部选择看起来都是当前最佳的,通过局部的最优化选择来产生全局最优解。本文将介绍贪心算法的理论基础和一些简单应用。在求最优解问题的过程中,依据某种贪心标准,从问题的初始状态出发,直接去求每一步的最优解,通过若干次的贪心选择,最终得出整个问题的最优解,这种求解方法就是贪心算法。
风骨散人Chiam
2020/10/28
8030
疯子的算法总结(四)贪心算法
程序员进阶之算法练习(九十八)
题目链接 题目大意: 在一个国际象棋的棋盘上,有一个棋子,它的移动规则类似马,能够朝着横or竖方向移动距离a,然后朝竖or横(和之前不同)移动距离b; 比如说马的移动规则就是a=1,b=2;
落影
2024/02/18
1920
程序员进阶之算法练习(九十八)
POJ 3461 字符串匹配(KMP / 哈希(有推导))
1. 题目 1.1 题目链接 http://poj.org/problem?id=3461 类似题目:LeetCode 30. 串联所有单词的子串(字符串哈希) 1.2 题目大意 模式串在主串中出现
Michael阿明
2021/02/20
4800
POJ 3461 字符串匹配(KMP / 哈希(有推导))
动态规划(一)POJ1163
动态规划算法是比较实用的算法之一,结合实际问题能更好的熟悉这个算法 下面以POJ1163为例子
Enterprise_
2019/02/21
5530
poj2793 素数和
题目链接:http://poj.org/problem?id=2739 #include<iostream> using namespace std; int count=0; int prim[
瑾诺学长
2018/09/21
2620
脚撕LeetCode(1337)Easy
题目地址:https://leetcode-cn.com/problems/the-k-weakest-rows-in-a-matrix/submissions/
JathonKatu
2021/06/10
3230
相关推荐
poj supermaket (贪心)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验