题目链接: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

 #include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std; const int maxn = 1e5 + ;
int a[maxn], cnt[]; int main()
{
int i, n, sum, flag, flag1;
while (scanf("%d", &n) != EOF)
{
for (i = ; i < n; i++)
{
scanf("%d", &a[i]);
}
memset(cnt, , sizeof(cnt));
flag = flag1 = sum = ;
for (i = ; i < n; i++)
{
if (a[] != ) // 第一张一定要是收到25,否则根本无法找零钱
{
flag = ;
break;
}
else
{
sum += a[i]; // 从一开始到当前所拥有的钱的总数
// printf("sum = %d\n", sum);
if (a[i] == )
{
cnt[]++; // 代表50面额的数量增加
if (cnt[] > ) // 要找25卢布,相应的25卢布这个面额的数量减少
{
cnt[]--;
sum -= ; // 当然总的钱数也需要减少
// printf("50 cnt[25] = %d, cnt[50] = %d\n", cnt[25], cnt[50]);
}
else
flag1 = ; // 无力找钱给人
}
else if (a[i] == )
{
cnt[]++;
if (cnt[] > && cnt[] > )
{
cnt[]--; // 找1张50和一张25
cnt[]--;
sum -= ;
// printf("100: cnt[25] = %d, cnt[50] = %d, cnt[100] = %d\n", cnt[25], cnt[50], cnt[100]);
}
else if (cnt[] > )
{
cnt[] -= ; // 找3张25给人
sum -= ;
// printf("100: cnt[25] = %d\n", cnt[25]);
}
else
flag1 = ;
}
else if (a[i] == )
{
cnt[]++;
// printf("25: cnt[25] = %d\n", cnt[25]);
}
// printf("final sum = %d\n\n", sum);
}
}
if (flag)
printf("NO\n");
else if (flag1)
printf("NO\n");
else
printf("YES\n");
}
return ;
}

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. 8.Android之日期DatePicker和时间TimeTicker控件学习

    手机设置时间日期很普遍,今天就梳理下. 首先在拖入一个按钮 ,日期和时间控件到工程里,如图: 代码如下: <?xml version="1.0" encoding=" ...

  2. BZOJ solve 100 纪念

    按照xiaoyimi立下的flag是不是该去表白啦--可惜并没有妹子

  3. TCP/IP详解 笔记一

    概述: Tcp-ip让网络上的计算机进行通信,而不管计算机和操作系统是否一样. 分层结构: Tcp/ip协议族是多层协议的组合,而tcp和ip只是其中的两个协议而已. 一个通信举例: 注意图的右上方: ...

  4. java中获取本地文件的编码

    import java.util.*; public class ScannerDemo { public static void main(String[] args) { System.out.p ...

  5. 使用SubLineText3

    一 Sublinetext3 1. Sublime Text3是一款跨平台的编辑器, 2. 安装网址: http://www.sublimetext.com/3 二 常用使用方法 1)打开控制台: V ...

  6. javaweb学习总结(三十一)——国际化(i18n)

    一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...

  7. JavaScript入门培训材料(Copy至此以作备份)

    JavaScript简明学习教程 2014年5月31日 目录 一.说明... 2 二.准备知识... 2 (一)HTML. 2 (二)DOM.. 3 三.JavaScript简介... 3 四.Jav ...

  8. Eigenvectors and eigenvalues

    http://setosa.io/ev/eigenvectors-and-eigenvalues/ Explained Visually Tweet  By Victor Powell and Lew ...

  9. Linq 中 表连接查询

    public void Test(){ var query = from a in A join b in B on A.Id equals B.Id into c from d in c.Defau ...

  10. java 打包过程及如何使用第三方jar包

    地址:http://wenku.baidu.com/view/44a1bbed81c758f5f61f6779.html或者 http://wenku.it168.com/d_000575231.sh ...