CodeForces 699C Vacations 贪心

来源:互联网 发布:python strip 多个 编辑:程序博客网 时间:2024/06/06 02:19

CF传送门

题意:

  1. Vasya放假了,然后他的假期的每一天有四种情况

        0代表:体育馆关门,并且没有比赛(什么都没有,只能休息了)

        1代表:体育馆关门,但有比赛(可以打比赛,也可以休息)

        2代表:体育馆开门,但没有比赛(可以体育活动,也可以休息)

        3代表:体育馆开门,并且有比赛(可以体育活动,可以比赛,可以休息)

  2. 要求Vasya的暑假尽可能少休息,求休息的天数

  3. 每天只能做一件事,三选一,即不能比赛的同时去体育活动……

题解:

  1. 情况3的时候,尽可能不休息

  2. 情况1/2的时候,要看昨天的安排

  3. 我代码里采用立足今天,判断明天,并对明天的情况进行更换的思路。那么今天就不会出现情况3

  4. 最后一天要单独判断是否休息,因为循环里并不执行到最后一天


以下是我的AC代码:

#include <iostream>using namespace std;int a[105];int main(){    int n,i,sum=0;    cin >> n;    for(i=0; i<n; i++)        cin >> a[i];    for(i=0;i<n-1;i++)    {        if(a[i]==0)            sum++;        else if(a[i]==1)        {            if(a[i+1]==1)                a[i+1]=0;            else if(a[i+1]==3)                a[i+1]=2;        }        else if(a[i]==2)        {            if(a[i+1]==2)                a[i+1]=0;            else if(a[i+1]==3)                a[i+1]=1;        }    }    if(a[i]==0)        sum++;    cout << sum << endl;    return 0;}

原创粉丝点击