• CodeForces


    传送门

    Vasya有n天假期,每天可以去健身房或者撸代码。她不想连续两天做同种运动(脑力也是运动),但她可以每天当一条咸鱼,给出事件,求解最小的休息天数。

      

    事件  健身房  机房

    0     关    关

    1      关    开

    2     开      关

    3     开    开

    很明显的计数和状态转移,用dp解。dp[i][j]代表第i天做j事总计的休息时间

    对于j, 0==休息,1==健身,2==代码

    当一个状态不能转移到的时候,设值为无穷大。这样由于我们需要min(x,y)操作,所以这个值也就不会用到了

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 #include <queue>
     5 #include <vector>
     6 #define max(x, y) (x > y ? x : y)
     7 #define min(x, y) (x > y ? y : x)
     8 #define INF 0x3f3f3f3f
     9 #define mod 1000000007
    10 #define Yes printf("Yes
    ")
    11 #define No printf("No
    ")
    12 typedef long long LL;
    13 using namespace std;
    14 
    15 const int maxn = 1e2 + 10;
    16 int dp[maxn][5];
    17 int n;
    18 int a;
    19 
    20 int main(int argc, const char * argv[]) {
    21     scanf("%d", &n);
    22     memset(dp, 0, sizeof(dp));
    23     for (int i = 1; i <= n; i++) {
    24         scanf("%d", &a);
    25         dp[i][0] = min(dp[i - 1][0], min(dp[i - 1][1], dp[i - 1][2])) + 1;
    26         if (a == 1 || a == 3) {
    27             dp[i][2] = min(dp[i - 1][0], dp[i - 1][1]);
    28         } else {
    29             dp[i][2] = INF;
    30         }
    31         if (a == 2 || a == 3) {
    32             dp[i][1] = min(dp[i - 1][0], dp[i - 1][2]);
    33         } else {
    34             dp[i][1] = INF;
    35         }
    36         
    37         if (a == 0) {
    38             dp[i][1] = dp[i][2] = INF;
    39         }
    40     }
    41     printf("%d
    ", min(dp[n][0], min(dp[n][1], dp[n][2])));
    42     return 0;
    43 }
  • 相关阅读:
    devDependencies和dependencies的版本写法
    dependencies 与 devDependencies 的区别
    Java +selenium Navigation接口介绍
    Java + selenium window()接口方法介绍
    Java + selenium Timeout接口用法介绍
    Java + selenium 启动谷歌浏览器
    selenium 3 下载 + Java使用
    Rsync 实现服务器文件的同步——服务端的安装配置
    selenium V1.0和V2.0差别对比
    PHP的安装配置
  • 原文地址:https://www.cnblogs.com/xFANx/p/7259601.html
Copyright © 2020-2023  润新知