• dp cf 20190613


    A. Boredom

    这个题目不难,但是我做的还比较复杂,不过还是很开心,至少做出来了,开始因为爆int了还wa了一发,搞得我以为自己做错了

    #include <cstdio>
    #include <cstdlib>
    #include <map>
    #include <cstring>
    #include <queue>
    #include <vector>
    #include <algorithm>
    #include <iostream>
    #define inf 0x3f3f3f3f
    using namespace std;
    typedef long long ll;
    const int maxn = 1e5 + 100;
    ll dp[maxn][2];
    ll sum[maxn];
    
    int main()
    {
        int n, x, len = 0;
        scanf("%d", &n);
        for (int i = 1; i <= n; i++) {
            scanf("%d", &x);
            sum[x] += x;
            len = max(len, x);
        }
        for(int i=1;i<=len;i++)
        {
            if(sum[i])
            {
                dp[i][0] = max(dp[i - 1][0], dp[i - 1][1]);
                dp[i][1] = dp[i - 1][0] + sum[i];
            }
            else
            {
                dp[i][0] = dp[i][1] = max(dp[i - 1][0], dp[i - 1][1]);
            }
        }
        printf("%lld
    ", max(dp[len][0], dp[len][1]));
        return 0;
    }
    A

     

    C. k-Tree

    这个题目开始感觉有点难,后来好像也没有想象之中的那么难,

    定义dp[i]表示组成数字i的方案数

    #include <cstdio>
    #include <cstdlib>
    #include <map>
    #include <cstring>
    #include <queue>
    #include <vector>
    #include <algorithm>
    #include <iostream>
    #define inf 0x3f3f3f3f
    using namespace std;
    typedef long long ll;
    const int maxn = 1e5 + 100;
    const int mod = 1e9 + 7;
    ll dp1[110], dp2[110];//定义为权值和为i的方案数。
    
    int main()
    {
        int n, k, d;
        scanf("%d%d%d", &n, &k, &d);
        dp1[0] = dp2[0] = 1;
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=k;j++)
            {
                if (i < j) break;
                dp1[i] = (dp1[i] + dp1[i - j]) % mod;
            }
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=d-1;j++)
            {
                if (i < j) break;
                dp2[i] = (dp2[i] + dp2[i - j]) % mod;
            }
        }
        printf("%lld
    ", (dp1[n] - dp2[n]+mod)%mod);
        return 0;
    }
    C
  • 相关阅读:
    Ubuntu下录音机程序的使用
    Bash中的数学计算
    Bash中的数学扩展
    Bash的命令替换
    top的用法
    VirtualBox的快照功能
    格式化输出和printf命令
    read命令读取用户输入
    Bash的作业控制
    Codeforces Round #455 (Div. 2)
  • 原文地址:https://www.cnblogs.com/EchoZQN/p/11014289.html
Copyright © 2020-2023  润新知