题意:

田忌和齐王各有n匹马,如果马的速度比齐王的快就赢200,慢则输200,相等不赔不赚。

已知两人每匹马的速度(为整数)和齐王所排出的马的顺序,问田忌该如何应对才能使收益最大。

分析:

本以为是一道很简单的贪心,上来就贪,结果什么都没贪出来。

看了题解才发现贪心是比较复杂的。

这里贴上poj某牛的神分析。

  1. 贪心策略:
  2. 1,如果田忌的最快马快于齐王的最快马,则两者比。
  3. (因为若是田忌的别的马很可能就赢不了了,所以两者比)
  4. 2,如果田忌的最快马慢于齐王的最快马,则用田忌的最慢马和齐王的最快马比。
  5. (由于所有的马都赢不了齐王的最快马,所以用损失最小的,拿最慢的和他比)
  6. 3,若相等,则比较田忌的最慢马和齐王的最慢马
  7. 3.1,若田忌最慢马快于齐王最慢马,两者比。
  8. (田忌的最慢马既然能赢一个就赢呗,而且齐王的最慢马肯定也得有个和他比,所以选最小的比他快得。)
  9. 3.2,其他,则拿田忌的最慢马和齐王的最快马比。
  10. (反正所有的马都比田忌的最慢马快了,所以这匹马必输,选贡献最大的,干掉齐王的最快马)
  1. #include <cstdio>
  2. #include <algorithm>
  3. using namespace std;
  4.  
  5. const int maxn = + ;
  6. int tian[maxn], king[maxn];
  7.  
  8. int main(void)
  9. {
  10. //freopen("3266in.txt", "r", stdin);
  11. int n;
  12. while(scanf("%d", &n) == && n)
  13. {
  14. for(int i = ; i < n; ++i) scanf("%d", &tian[i]);
  15. for(int i = ; i < n; ++i) scanf("%d", &king[i]);
  16. sort(tian, tian + n);
  17. sort(king, king + n);
  18.  
  19. int thead = , khead = ;
  20. int ttail = n-, ktail = n-;
  21. int win = ;
  22.  
  23. while(n--)
  24. {
  25. if(tian[ttail] > king[ktail]) //如果田忌的最快马快于齐王的最快马,则两者比。
  26. {
  27. ttail--;
  28. ktail--;
  29. win++;
  30. }
  31. else if(tian[ttail] < king[ktail]) //如果田忌的最快马慢于齐王的最快马,则用田忌的最慢马和齐王的最快马比。
  32. {
  33. thead++;
  34. ktail--;
  35. win--;
  36. }
  37. else //若相等,则比较田忌的最慢马和齐王的最慢马
  38. {
  39. if(tian[thead] > king[khead]) //若田忌最慢马快于齐王最慢马,两者比。
  40. {
  41. thead++;
  42. khead++;
  43. win++;
  44. }
  45. else //其他,则拿田忌的最慢马和齐王的最快马比。
  46. {
  47. if(tian[thead] < king[ktail]) win--;
  48. thead++;
  49. ktail--;
  50. }
  51. }
  52. }
  53.  
  54. printf("%d\n", win * );
  55. }
  56.  
  57. return ;
  58. }

代码君

LA 3266 (贪心) Tian Ji -- The Horse Racing的更多相关文章

  1. 【贪心】[hdu1052]Tian Ji -- The Horse Racing(田忌赛马)[c++]

    Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java ...

  2. HDU 1052 Tian Ji -- The Horse Racing【贪心在动态规划中的运用】

    算法分析: 这个问题很显然可以转化成一个二分图最佳匹配的问题.把田忌的马放左边,把齐王的马放右边.田忌的马A和齐王的B之间,如果田忌的马胜,则连一条权为200的边:如果平局,则连一条权为0的边:如果输 ...

  3. HDU 1052 Tian Ji -- The Horse Racing (贪心)(转载有修改)

    Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (J ...

  4. HDU 1052:Tian Ji -- The Horse Racing(贪心)

    Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 65536/32768 K (Jav ...

  5. hdoj 1052 Tian Ji -- The Horse Racing【田忌赛马】 【贪心】

    思路:先按从小到大排序, 然后从最快的開始比(如果i, j 是最慢的一端, flag1, flag2是最快的一端 ),田的最快的大于king的 则比較,如果等于然后推断,有三种情况: 一:大于则比較, ...

  6. 【OpenJ_Bailian - 2287】Tian Ji -- The Horse Racing (贪心)

    Tian Ji -- The Horse Racing 田忌赛马,还是English,要不是看题目,我都被原题整懵了,直接上Chinese吧 Descriptions: 田忌和齐王赛马,他们各有n匹马 ...

  7. POJ-2287.Tian Ji -- The Horse Racing (贪心)

    Tian Ji -- The Horse Racing Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 17662   Acc ...

  8. hdu_1052 Tian Ji -- The Horse Racing 贪心

    Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (J ...

  9. Hdu 1052 Tian Ji -- The Horse Racing

    Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (J ...

随机推荐

  1. Python环境搭建和开发工具的配置

    本文转自http://237451446.blog.51cto.com/2307663/766781 因为要学习python了,第一步当然是环境搭建和开发工具的配置了,下边开始了. 我的开发环境是在w ...

  2. iOS上用FTGL显示定制Truetype字体碰到的问题

    没想到这个问题搞了快2个月时间:当然跟我只是断断续续地工作有关. FTGL是freetype的opengl实现.我接触FTGL最初只是为了练习OpenGL,写几个简单的游戏app.开始试了试FTGL觉 ...

  3. php中的性能挖掘

    搞php以后,感觉总是很别扭,因为我觉得php会很慢,因为array普遍,在Key的循环查找不是很浪费性能么!因为我以前搞.net和java,他们是用的大多是寻址和索引方式,而php中太多是使用Key ...

  4. 移动端页面使用rem来做适配

    文/九彩拼盘(简书作者)原文链接:http://www.jianshu.com/p/eb05c775d3c6著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. rem介绍 rem(font ...

  5. Reactjs相比较原生方案是绝对的快吗?哪些情况下React有优势

    作者:尤雨溪链接:http://www.zhihu.com/question/31809713/answer/53544875来源:知乎著作权归作者所有,转载请联系作者获得授权.   1. 原生 DO ...

  6. [CFgym]2015-2016 ACM-ICPC Pacific Northwest Regional Contest小结

    *感谢两位浙江大佬带我飞 贴下成绩 div2 div1 *div2不是我打的上个厕所就5/11了 比赛小结 A [题目大意] 有n(n<=500)个机场,两两之间距离是g[i][j],每经停一个 ...

  7. WCF 基础

    ServiceModel 配置元素 Binding 配置元素: 客户端Web.config: <?xml version="1.0" encoding="utf-8 ...

  8. 【机器学习】BP神经网络实现手写数字识别

    最近用python写了一个实现手写数字识别的BP神经网络,BP的推导到处都是,但是一动手才知道,会理论推导跟实现它是两回事.关于BP神经网络的实现网上有一些代码,可惜或多或少都有各种问题,在下手写了一 ...

  9. QualityCenter10+Oracle10.2.1.0.1+Win2003SP2企业版安装步骤

    HpQualityCenter10+Oracle10.2.1.0.1+Win2003SP2企业版安装步骤: 1.点击setup.exe,等待,知道出现以下界面,然后按“下一步” 2.出现如下界面,接受 ...

  10. SDUT2141数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历

    http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2141&cid=1186 #include<cstdio> #include& ...