Codeforces Round #552 (Div. 3)-D-Walking Robot-(贪心)

Posted 守林鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #552 (Div. 3)-D-Walking Robot-(贪心)相关的知识,希望对你有一定的参考价值。

http://codeforces.com/contest/1154/problem/D

解题:

1.无光的时候优先使用太阳能电池。

2.有光的时候

(1)太阳能电池没满电,让它充,使用普通电池

(2)太阳能电池满电,使用太阳能电池

技术图片
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<string>
#include<vector>
#include<iostream>
#include<cstring>
#include<set>
#include<queue>
#define inf 0x3f3f3f3f
#define ll long long
using namespace std;

int n,a,b;
int s[200005];

int main()
{
    while(scanf("%d%d%d",&n,&a,&b)!=EOF)///路段 普通电池 太阳能电池
    {
        for(int i=1;i<=n;i++)
            scanf("%d",&s[i]);
        int maxx=b;
        int sum=0;
        for(int i=1;i<=n;i++)
        {
            if(s[i]==0)///无光
            {
                if(b)///优先使用太阳能电池
                {
                    b--;
                    sum++;
                }
                else if(a)///其次使用普通电池
                {
                    a--;
                    sum++;
                }
                else
                    break;
            }
            else ///有光
            {
                if(b==maxx)///太阳能满了就优先使用它
                {
                    b--;
                    sum++;
                }
                else if(a)///太阳能没满就让太阳能充电,用普通电池
                {
                    b++;
                    sum++;
                    a--;
                }
                else if(b)///太阳能没满,但是普通电池已经用完了
                {
                    b--;
                    sum++;
                }
                else
                    break;
            }
        }
        printf("%d\n",sum);
    }
    return 0;
}
View Code

 

以上是关于Codeforces Round #552 (Div. 3)-D-Walking Robot-(贪心)的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #552 (Div. 3)-D-Walking Robot-(贪心)

Codeforces Round #552 (Div. 3) Editorial 1154C - Gourmet Cat

Codeforces Round #552 (Div. 3) C. Gourmet Cat (数学,模拟)

Codeforces Round #552 (Div. 3)-1154E-Two Teams-(模拟+双指针)

Codeforces Round #436 E. Fire(背包dp+输出路径)

[ACM]Codeforces Round #534 (Div. 2)