• HDU1176 免费馅饼(简单dp)


    题意:一开始在5,每分钟可以接附近3个地方其中一个的东西,问最多接到多少个。

    思路:倒着一遍就可以了

    /* ***********************************************
    Author        :devil
    Created Time  :2015/12/22 20:50:26
    ************************************************ */
    
    #include <iostream>
    #include <algorithm>
    #include <cstring>
    #include <cmath>
    #include <queue>
    #include <map>
    #include <set>
    #include <vector>
    #include <cstdio>
    using namespace std;
    int dp[100005][12];
    int main()
    {
        //freopen("in.txt","r",stdin);
        int n;
        while(~scanf("%d",&n)&&n)
        {
            int t,x,ma=0;
            memset(dp,0,sizeof(dp));
            while(n--)
            {
                scanf("%d%d",&x,&t);
                dp[t][x]++;
                ma=max(ma,t);
            }
            for(int i=ma-1;i>=0;i--)
            {
                dp[i][0]+=max(dp[i+1][0],dp[i+1][1]);
                dp[i][11]+=max(dp[i+1][10],dp[i+1][11]);
                for(int j=1;j<11;j++)
                    dp[i][j]+=max(max(dp[i+1][j-1],dp[i+1][j]),dp[i+1][j+1]);
            }
            printf("%d
    ",dp[0][5]);
        }
        return 0;
    }
  • 相关阅读:
    盛最多水的容器
    字符串的排序
    整数拆分
    TCP和UDP编程
    旋转图像
    非递减数列
    不同路径2
    不同路径
    压缩拉伸图片
    Java对List分割及使用Spring多线程调用
  • 原文地址:https://www.cnblogs.com/d-e-v-i-l/p/5068076.html
Copyright © 2020-2023  润新知