[HDU1176]免费馅饼(DP)

题目链接

http://acm.hdu.edu.cn/showproblem.php?pid=1176

题解

DP。因为起点固定,终点随意,所以从终点到起点的顺序dp。

代码

import java.util.Scanner;

public class FreePie {
    static final int MAXT=100005;
    static final int MAXLEN=10;

    public static void main(String args[]) {
        Scanner in=new Scanner(System.in);
        while(in.hasNext()){
            int[][] pie=new int[MAXT][MAXLEN+1];
            int n=in.nextInt();
            if(n==0) {
                break;
            }

            int maxT=Integer.MIN_VALUE;
            while(n--!=0) {
                int x=in.nextInt();
                int t=in.nextInt();
                ++pie[t][x];
                maxT=t>maxT?t:maxT;
            }

            int maxPie=maxPieCnt(pie,maxT);
            System.out.println(maxPie);
        }
        in.close();
    }

    public static int maxPieCnt(int pie[][],int maxT) {
        int[][] dp=new int[maxT+1][MAXLEN+1];
        for(int j=0;j<=MAXLEN;++j) {//
            dp[maxT][j]=pie[maxT][j];
        }
        for(int i=maxT-1;i>=0;--i) {//
            for(int j=0;j<=MAXLEN;++j) {
                if(j==0) {
                    dp[i][j]=Math.max(dp[i+1][j], dp[i+1][j+1])+pie[i][j];
                }
                else if(j==MAXLEN) {
                    dp[i][j]=Math.max(dp[i+1][j-1], dp[i+1][j])+pie[i][j];
                }
                else {
                    dp[i][j]=Math.max(dp[i+1][j-1],Math.max(dp[i+1][j],dp[i+1][j+1]))+pie[i][j];
                }
            }
        }
        return dp[0][5];
    }
}

原文地址:https://www.cnblogs.com/coding-gaga/p/10982340.html

时间: 2024-07-28 12:48:24

[HDU1176]免费馅饼(DP)的相关文章

hdu 1176 免费馅饼 (dp 数塔类型)

免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 25712    Accepted Submission(s): 8760 Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的1

hdu1176 免费馅饼 ( 数塔(DP))

免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 32770    Accepted Submission(s): 11169 Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的

HDU 1176免费馅饼 DP数塔问题转化

L - 免费馅饼 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 1176 Appoint description:  prayerhgq  (2015-07-28) System Crawler  (2015-11-21) Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.

解题报告 HDU1176 免费馅饼

免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 27587    Accepted Submission(s): 9370 Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10

Hdu1176免费馅饼

//免费馅饼 #include<stdio.h> #include<string.h> #define MAXN 100010 int dp[MAXN][12],pile[MAXN][12]; //全局变量和静态变量的存储区域是在一起的,程序结束后由系统释放.数据区的大小由系统限定,一般很大. int max_is(int a,int b,int c); int main(){ int n,x,t,i,j,maxt; while(scanf("%d",&

HDU1176 免费馅饼(简单dp)

题意:一开始在5,每分钟可以接附近3个地方其中一个的东西,问最多接到多少个. 思路:倒着一遍就可以了 /* *********************************************** Author :devil Created Time :2015/12/22 20:50:26 ************************************************ */ #include <iostream> #include <algorithm>

hdu 1176 免费馅饼 (dp)

http://acm.hdu.edu.cn/showproblem.php?pid=1176 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int dp[100000+10][12]; int mat[100000+10][12]; int main() { int n; int i,j,k; int maxt; w

HDOJ1176 免费馅饼 【DP】+【经典数塔】

免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 23986    Accepted Submission(s): 8093 Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的1

[dp专题]G免费馅饼

免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 29065    Accepted Submission(s): 9921 Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10