zoukankan      html  css  js  c++  java
  • NYOJ 613 免费馅饼

    链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=613


    dp[i ][j ] :第i秒在位置 j 的最大接到馅饼的量


    从接完馅饼的最终位置开始判断,不断取最大的,倒推到起点。即得到最大值



    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #define MAX_T 100000
    using namespace std;
    pair <int ,int > p;
    int dp[MAX_T+5][15];                //第i 秒,在位置j 的最大值
    int max_3(int a,int b,int c)
    {
        if(a<b) a=b;
        if(a<c) a=c;
        return a;
    
    }
    int main()
    {
    
        int n;
        int T;
        while(scanf("%d",&n)&&n!=0)
        {
            T=0;
            memset(dp,0,sizeof(dp));
            for(int i=0;i<n;i++)
            {
                scanf("%d%d",&p.first,&p.second);
                dp[p.second][p.first]++;
                T= T>p.second?T:p.second;
            }
            for(int i=T; i>=0; i--)
                for(int j=0; j<11; j++)
                {
                    dp[i][j]+=max_3(dp[i+1][j],dp[i+1][j-1],dp[i+1][j+1]);
                }
            printf("%d
    ",dp[0][5]);//起点
    
    
    
        }
        return 0;
    }


  • 相关阅读:
    DOM编程
    BOM编程
    JavaScript
    CSS
    HTML入门
    shiro与项目集成开发
    shiro授权测试
    散列算法
    shiro认证流程
    spring boot 入门及示例
  • 原文地址:https://www.cnblogs.com/frankM/p/4399482.html
Copyright © 2011-2022 走看看