Codeforces Round #202 (Div. 2) (A、B、C、D)

博主分享了在Codeforces Round #202 (Div. 2)比赛中的经历和四道题目——A. Cinema Line、B - Color the Fence、C - Mafia、D - Apple Tree的解题思路。A题通过模拟解决找零问题;B题通过优化策略确定能写出的最大数字;C题通过二分搜索确定最少的游戏局数;D题利用树的结构和分支数找到平衡所需的最小减权值。
摘要由CSDN通过智能技术生成

           这场比赛发挥的不太好吧,当时只做了两题,第三题当时已经想到正解了,但不知发什么神经去想别的解法了。。。果然晚上的状态不好啊。

 

A. Cinema Line

     非常水……一队人排队买票,每个人只有25、50和100的面值的钱,问买票的人最开始手里没有钱,能否给每个买票的人找钱。直接模拟即可~

 

代码:

 

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<vector>
#define inf 0x3f3f3f3f
#define Inf 0x3FFFFFFFFFFFFFFFLL
#define eps 1e-9
#define pi acos(-1.0)
using namespace std;
typedef long long ll;
const int maxn=100000+10;
int main()
{
    //freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);
    int n;
    while(~scanf("%d",&n))
    {
        int a,b,tmp;
        a=b=0;
        bool flag=true;
        for(int i=1;i<=n;++i)
        {
            scanf("%d",&tmp);
            if(tmp==25)
              a++;
            else if(tmp==50)
            {
                b++;
                if(a>0) a--;
                else flag=false;
            }
            else
            {
                if(b>0)
                {
                    if(a>0) b--,a--;
                    else flag=false;
                }
                else
                {
                    if(a>2) a-=3;
                    else flag=false;
                }
            }
        }
        if(flag) puts("YES");
        else puts("NO");
    }
    return 0;
}


 

 

 

B - Color the F

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值