1 条题解

  • 0
    @ 2021-11-7 11:15:12
    #include <math.h>
    #include <stdio.h>
    #include <iostream>
    #include <string.h>
    #include <algorithm>
    using namespace std;
    int a[200];
    int dp[200];
    int main()
    {
        int n , m;
        cin >> n >> m;
        int t;
        cin >> t;
        while(t--)
        {
            int x,y;
            cin >> x >> y;
            a[x] = max(a[x],y);
        }
    
        dp[0] = 0;
        dp[1] = a[1] ;
        dp[2] = max(a[2] , a[1]);
        dp[3] = max(a[1],max(a[2],a[3]));
        for(int i = 3 ; i <= n+1 ;i++)
        {
    
            dp[i] = min(dp[i-3] + max(a[i],max(a[i-1],a[i-2])) ,  // 上一个放梯子
    
            dp[i-1] + a[i]); 
        }
        cout <<dp[n+1];
    
        return 0;
    }
    
    • 1

    信息

    ID
    1404
    时间
    1000ms
    内存
    128MiB
    难度
    6
    标签
    递交数
    88
    已通过
    30
    上传者