贪心算法 田忌赛马问题

这个题目贪心的本质在于:*田忌只在有把握赢的情况下拿出快马和王拼,否则用最慢的马比掉王的快马最大程度削弱王的战斗力

  • 贪心策略:
    1,如果田忌的最快马快于齐王的最快马,则两者比。
    (因为若是田忌的别的马很可能就赢不了了,所以两者比)
    2,如果田忌的最快马慢于齐王的最快马,则用田忌的最慢马和齐王的最快马比。
    (由于所有的马都赢不了齐王的最快马,所以用损失最小的,拿最慢的和他比)
    3,若相等,则比较田忌的最慢马和齐王的最慢马

    • 若田忌最慢马快于齐王最慢马,两者比。
      (田忌的最慢马既然能赢一个就赢,而且齐王的最慢马肯定也得有个和他比,所以选最小的比他快得。)
    • 其他,则拿田忌的最慢马和齐王的最快马比(注意两马战力相等的情况,不能算田忌输)。
      (反正所有的马都比田忌的最慢马快了,所以这匹马必输,选贡献最大的,干掉齐王的最快马)
#include <stdio.h>
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <cctype>
#include <string>
#include <cstring>
#include <algorithm>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <ctime>
#include <vector>
#include <fstream>
#include <list>
#include <iomanip>
#include <numeric>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int inf = 0x3f3f3f3f;
const int N=1000+5;
int a[N],b[N];
bool cmp(int x,int y){return x>y;
}
int main()
{int n;while(cin>>n&&n){for(int i=0;i<n;i++){cin>>a[i];}for(int i=0;i<n;i++){cin>>b[i];}sort(a,a+n,cmp);sort(b,b+n,cmp);int si=0,sj=si;int ei=n-1,ej=ei;int cnt=0;while(n--){if(a[si]>b[sj]){si++;sj++;cnt++;}else if(a[si]==b[sj]){if(a[ei]>b[ej]){cnt++;ei--;ej--;}else if(a[ei]<b[sj]){cnt--;ei--;sj++;}}else{ei--;sj++;cnt--;}}cout<<cnt*200<<endl;}return 0;
}

转载于:https://www.cnblogs.com/Janspiry/p/10809438.html

贪心算法 田忌赛马问题相关推荐

  1. 55天 - 贪心算法 - 田忌赛马问题 openjudge百炼 2287

    //模板#include <iostream> #include <cstdio> #include <string> #include <algorithm ...

  2. 典型的贪心算法~ (田忌赛马 )

    1. 田忌赛马  典型的贪心算法~~自己木有考虑到贪心的第二步导致wa了好多次 算法分析 Problem Description: 给出2N组数据,分别表示田忌和齐威王的N匹马的速度,没进行一场比赛( ...

  3. 田忌赛马贪心算法_贪心算法--田忌赛马问题

    题目描述: 你一定听过田忌赛马的故事吧? 如果3匹马变成1000匹,齐王仍然让他的马按从优到劣的顺序出赛,田忌可以按任意顺序选择他的赛马出赛.赢一局,田忌可以得到200两银子,输一局,田忌就要输掉20 ...

  4. POJ2287 田忌赛马---贪心算法

    田忌赛马 题目详见http://poj.org/problem?id=2287 田忌赛马大家都听过,可是如果不是上中下三等马,而是很多匹马,优劣有很多种分类,就不仅仅是321的问题了. 这个很明显就是 ...

  5. 用c语言实现田忌赛马(贪心算法)

    用C语言实现田忌赛马(贪心算法) *首先,我们来回顾一下田忌赛马的题目. **题目描述] "田忌赛马"是历史上有名的揭示如何善用自己的长处去对付对手的短处,从而在竞技中获胜的事例. ...

  6. 田忌赛马贪心算法_贪心算法之田忌赛马

    你一定听过田忌赛马的故事吧?       如果3匹马变成1000匹,齐王仍然让他的马按从优到劣的顺序出赛,田忌可以按任意顺序选择他的赛马出赛.赢一局,田忌可以得到200两银子,输一局,田忌就要输掉20 ...

  7. 田忌赛马贪心算法_杭电oj 1052田忌赛马问题

    问题描述 这是中国历史上的一个著名故事. "那是大约2300年前.田吉将军是齐国的一位高级官员.他喜欢与国王和其他人打赛马." "田和国王都拥有三匹不同级别的赛马,分别是 ...

  8. c语言贪心算法ppt,c语言(贪心算法).ppt

    c语言(贪心算法).ppt ACM程序设计,杭州电子科技大学 刘春英 ,2018/12/23,2,最近几天,,你 了吗,AC,2018/12/23,3,每周一星(9),qfwr,2018/12/23, ...

  9. 算法设计与分析第3章 贪心算法

    第4章 贪心算法 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 贪心算法的基本要素 1.贪心选择性质 所谓贪心选择性质是指所 ...

最新文章

  1. 【 C 】彻底学会字符串常量
  2. 无限极分类中递归查找一个树结构
  3. python能开发什么产品_三周学 Python ?不,三周做个产品
  4. 【机器学习】逻辑斯蒂回归原理
  5. iOS 中 #import同@class之间的区别
  6. [WCF编程]10.操作:请求/应答操作
  7. 自己编译操作系统,安装systemtap
  8. SAP-ABAP学习日常
  9. DirectoryEntry使用-实现域登录
  10. 【WPF】 免费图表控件的比较 (OxyPlot,LiveChart,ScottPlot,MsChart)
  11. 微信分享返回 错误码 -6 的情况!
  12. Android系统启动过程-uBoot+Kernel+Android
  13. 常用Nginx反向代理配置
  14. 利用div实现遮罩层效果
  15. 为了研究而玩:游戏分析的方法
  16. [论文翻译]-A Comprehensive Survey on Graph Neural Networks《图神经网络GNN综述》
  17. hadoop2.7.2下载
  18. 20190831每日一句 超越你的舒适区,突破自我,继续前进!
  19. TCP/IP参考模型-分层架构
  20. 浙大与北大计算机考研分数线,2017浙大考研复试分数线及相关问题

热门文章

  1. 2023校招美团第二次笔试
  2. 使用 gomonkey Mock 函数及方法时遇到 panic: permission denied 的问题及解决方法
  3. 销宝:落地页转换率如何提高?
  4. Dubbo入门及Dubbo-admin安装
  5. 交叉编译工具链的设置和命名规则
  6. CSDN【精品专栏】第七期
  7. golang中的rune类型
  8. 科学怪人的程序员测试网络安全
  9. win7 下MCR的安装以及环境变量配置
  10. 赛维时代IPO过会:第一季净利降71% 出口跨境电商热度降温