题目链接:http://codeforces.com/problemset/problem/349/A

题目意思:题目不难理解,从一开始什么钱都没有的情况下,要向每一个人售票,每张票价格是25卢布,这些人只可能拥有100,50,25的其中一张卢布。问:售票员是否能在可以找赎的情况下,向每一个人都售到票。

此题被贴上贪心的标签,但我觉得更像模拟题。用了比较笨的方法来解决,但是毕竟是自己编的,还是比较有感觉。要特别注意,收了别人的钱,相应的面额数量要作相应的改动。例如第一个样例的25 25 50 50,当处理到第三个人的50时,25卢比这个面值只剩下1了,原因是要找给第三个人25卢比,而本来没有50卢布面额的也从数量0变为1。网上有很多比较简单的方法,以下链接是个人觉得比较巧妙的: http://codeforces.com/problemset/status/349/problem/A/page/1?order=BY_PROGRAM_LENGTH_ASC

看这个人   CXXXX

  1. #include <iostream>
  2. #include <string.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. using namespace std;
  6.  
  7. const int maxn = 1e5 + ;
  8. int a[maxn], cnt[];
  9.  
  10. int main()
  11. {
  12. int i, n, sum, flag, flag1;
  13. while (scanf("%d", &n) != EOF)
  14. {
  15. for (i = ; i < n; i++)
  16. {
  17. scanf("%d", &a[i]);
  18. }
  19. memset(cnt, , sizeof(cnt));
  20. flag = flag1 = sum = ;
  21. for (i = ; i < n; i++)
  22. {
  23. if (a[] != ) // 第一张一定要是收到25,否则根本无法找零钱
  24. {
  25. flag = ;
  26. break;
  27. }
  28. else
  29. {
  30. sum += a[i]; // 从一开始到当前所拥有的钱的总数
  31. // printf("sum = %d\n", sum);
  32. if (a[i] == )
  33. {
  34. cnt[]++; // 代表50面额的数量增加
  35. if (cnt[] > ) // 要找25卢布,相应的25卢布这个面额的数量减少
  36. {
  37. cnt[]--;
  38. sum -= ; // 当然总的钱数也需要减少
  39. // printf("50 cnt[25] = %d, cnt[50] = %d\n", cnt[25], cnt[50]);
  40. }
  41. else
  42. flag1 = ; // 无力找钱给人
  43. }
  44. else if (a[i] == )
  45. {
  46. cnt[]++;
  47. if (cnt[] > && cnt[] > )
  48. {
  49. cnt[]--; // 找1张50和一张25
  50. cnt[]--;
  51. sum -= ;
  52. // printf("100: cnt[25] = %d, cnt[50] = %d, cnt[100] = %d\n", cnt[25], cnt[50], cnt[100]);
  53. }
  54. else if (cnt[] > )
  55. {
  56. cnt[] -= ; // 找3张25给人
  57. sum -= ;
  58. // printf("100: cnt[25] = %d\n", cnt[25]);
  59. }
  60. else
  61. flag1 = ;
  62. }
  63. else if (a[i] == )
  64. {
  65. cnt[]++;
  66. // printf("25: cnt[25] = %d\n", cnt[25]);
  67. }
  68. // printf("final sum = %d\n\n", sum);
  69. }
  70. }
  71. if (flag)
  72. printf("NO\n");
  73. else if (flag1)
  74. printf("NO\n");
  75. else
  76. printf("YES\n");
  77. }
  78. return ;
  79. }

codeforces A. Cinema Line 解题报告的更多相关文章

  1. codeforces B. Shower Line 解题报告

    题目链接:http://codeforces.com/contest/431/problem/B 题目意思:给出5 * 5 的矩阵.从这个矩阵中选出合理的安排次序,使得happiness之和最大.当第 ...

  2. Codeforces Round 665 赛后解题报告(暂A-D)

    Codeforces Round 665 赛后解题报告 A. Distance and Axis 我们设 \(B\) 点 坐标为 \(x(x\leq n)\).由题意我们知道 \[\mid(n-x)- ...

  3. Codeforces Round 662 赛后解题报告(A-E2)

    Codeforces Round 662 赛后解题报告 梦幻开局到1400+的悲惨故事 A. Rainbow Dash, Fluttershy and Chess Coloring 这个题很简单,我们 ...

  4. Codeforces Round #277.5 解题报告

    又熬夜刷了cf,今天比正常多一题.比赛还没完但我知道F过不了了,一个半小时贡献给F还是没过--应该也没人Hack.写写解题报告吧= =. 解题报告例如以下: A题:选择排序直接搞,由于不要求最优交换次 ...

  5. codeforces A. Dima and Continuous Line 解题报告

    题目链接:http://codeforces.com/problemset/problem/358/A 题目意思:在横坐标上给出n个不同的点,需要把前一个点跟后一个点(这两个点的顺序是紧挨着的)用一个 ...

  6. codeforces B. Simple Molecules 解题报告

    题目链接:http://codeforces.com/problemset/problem/344/B 题目意思:这句话是解题的关键: The number of bonds of an atom i ...

  7. 【LeetCode】149. Max Points on a Line 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典+最大公约数 日期 题目地址:https://l ...

  8. codeforces 591A. Wizards' Duel 解题报告

    题目链接:http://codeforces.com/problemset/problem/591/A 题目意思:其实看下面这幅图就知道题意了,就是Harry 和 He-Who-Must-Not-Be ...

  9. codeforces 582A. GCD Table 解题报告

    题目链接:http://codeforces.com/problemset/problem/582/A 网上很多题解,就不说了,直接贴代码= = 官方题解: http://codeforces.com ...

随机推荐

  1. 第六节 JBPM版本控制以及Token对象

    1.JBPM版本 2.Token 3.流程上下文

  2. 手动搭建SpringMVC报错

    猜测这个是由于自己在搭建时缺少包造成的,后来将按照自己之前的项目将包补齐,tomcat就不报错了,看来还是要学习maven 这样就不会缺少包了

  3. MVC模式介绍

    MVC是一种通过3个不同部分构造一个软件或组件的理想办法: 1.模型(Model):用于存储数据的对象. 2.视图(View):为模型提供数据显示的对象. 控制器(Controller):负责具体的业 ...

  4. 快速反射DataTable

    public class SetterWrapper<TTarget, TValue> { private Action<TTarget, TValue> _setter; p ...

  5. HTTP负载测试——Tsung

    参考资料:http://blog.jobbole.com/87509/ 如何生成每秒百万级别的 HTTP 请求? 在进行负责测试时要牢记一件重要的事:你能在 Linux 上建立多少个 socket 连 ...

  6. php中文字符串翻转

    转自:http://www.oschina.net/code/snippet_613962_17070 <?php header("content-type:text/html;cha ...

  7. ASP.NET MVC4 log4net

    LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

  8. [转]Linux进程间通信——使用信号

    转载于:http://blog.csdn.net/ljianhui/article/details/10128731         经典!!! Linux进程间通信——使用信号 一.什么是信号 用过 ...

  9. form表单那点事儿(上) 基础篇

    form表单那点事儿(上) 基础篇 做为html中最为常见,应用最广泛的标签之一,form常伴随前端左右.了解更深,用的更顺. 目录: 表单属性 表单元素 常识 模拟外观 表单属性 这个表单展示了fo ...

  10. MapReduce中TextInputFormat分片和读取分片数据源码级分析

    InputFormat主要用于描述输入数据的格式(我们只分析新API,即org.apache.hadoop.mapreduce.lib.input.InputFormat),提供以下两个功能: (1) ...