首页 > 编程语言 >hdu1176免费馅饼java

hdu1176免费馅饼java

时间:2024-05-16 23:41:30浏览次数:22  
标签:java int max time 馅饼 sec hdu1176 sc dp

一个数塔问题,以时间为纵坐标、位置为横坐标创建一个二维数组,然后从下往上相加。

状态转移方程:9>= j>=1时 dp[i][j]+=max(max(dp[i+1][j],dp[i+1][j+1]),dp[i+1][j-1])  

      j=0时   dp[i][j] += max(dp[i+1][j],dp[i+1][j+1])
      j=10时 dp[i][j] += max(dp[i+1][j],dp[i+1][j-1])

import java.util.Scanner;

public class hdu1176 {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int n = sc.nextInt();
            if (n==0) {
                break;
            }
            int[][] aa = new int[100005][11];
            int time = 0;
            for (int i = 0; i < n; i++) {
                int place = sc.nextInt();
                int sec = sc.nextInt();
                aa[sec][place]++;
                time = Math.max(time, sec);
            }
            for (int i = time-1; i >= 0; i--) {
                for (int j = 0; j <= 10; j++) {
                    if (j==0) {
                        aa[i][j] += Math.max(aa[i+1][j], aa[i+1][j+1]);
                    }else if (j==10) {
                        aa[i][j] += Math.max(aa[i+1][j], aa[i+1][j-1]);
                    }else {
                        aa[i][j] += Math.max(Math.max(aa[i+1][j], aa[i+1][j+1]),aa[i+1][j-1]);
                    }                    
                }                
            }
            System.out.println(aa[0][5]);
        }
        sc.close();
    }
}

 

标签:java,int,max,time,馅饼,sec,hdu1176,sc,dp
From: https://www.cnblogs.com/xiaohuangTX/p/18197000

相关文章

  • Java-并发-ReentrantLock
    0.是什么ReentrantLock是java.util.concurrent.locks包中的一个类,提供了比synchronized关键字更灵活和强大的锁机制。ReentrantLock实现了Lock接口,它允许显式地加锁和解锁,并提供了一些高级功能,如中断锁请求、超时锁请求、公平锁和非公平锁选择等。1.为什么在Java诞生......
  • Java-线程-wait()、notify()和notifyAll()
    0.是什么(What)wait(),notify(),和notifyAll()方法都是Object类的一部分,用于实现线程间的协作。1.为什么(Why)线程的执行顺序是随机的(操作系统随机调度的,抢占式执行),但是有时候,我们希望的是它们能够顺序的执行。所以引入了这几个方法,使得我们能保证一定的顺序。1.1Objec类......
  • java复习
    Java复习好久没写博客了,主要是,忙着去干其他事去了。最近Java要考试了,打算梳理一下Java的知识点,主要是一些基础的语法,和Java的核心的常用的类库。ObjectObject类是Java中所有类的父类,因此有必要对该类中的方法进行了解,并记忆。Object类在java.lang中,常用方法如下:equals()......
  • java生成数字运算验证码
    第一步,引入依赖<!--验证码依赖--><dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</artifactId><version>1.6.2</version></dependency> <!--算数验证码使用--><dependency><groupId>......
  • Java面试题:Spring中的循环依赖,给程序员带来的心理阴影
    循环依赖通常发生在两个或多个SpringBean之间,它们通过构造器、字段(使用@Autowired)或setter方法相互依赖,从而形成一个闭环。下面是一个使用字段注入(即使用@Autowired)导致的循环依赖的示例: 示例代码: 假设我们有两个类,ClassA和ClassB,它们相互依赖:publicclassClassA{......
  • JavaScript中执行上下文和执行栈是什么?
    一、执行上下文简单的来说,执行上下文是一种对Javascript代码执行环境的抽象概念,也就是说只要有Javascript代码运行,那么它就一定是运行在执行上下文中执行上下文的类型分为三种:全局执行上下文:只有一个,浏览器中的全局对象就是 window对象,this 指向这个全局对象函数执行上下......
  • Java IO
    JavaIO的理解在Java编程中,IO(Input/Output)是处理输入和输出操作的基础。JavaIO库提供了一套完整的API,用于从各种源(如文件、网络、内存等)读取数据,并将数据写入到各种目标中。理解JavaIO库的设计思路、特性和实际用途对于开发健壮且高效的Java应用程序至关重要。JavaIO的设计思......
  • java中的反射
    java中的反射能够分析信息的能力叫反射目录java中的反射1.获取类的方法2.类对象常用功能一、构造方法获取指定的公共构造器获取指定的所有构造器(公共+非公共)获取所有的公共构造方法获取所有的构造方法(公共+非公共)二、成员变量获取指定公共成员变量获取指定所有成员变量(公共+非......
  • java中的拷贝
    目录1.浅拷贝(只拷贝原对象的地址)2.深拷贝(拷贝原对象的所有值)深拷贝的方式这里说的拷贝主要是针对引用类型,而对于基本数据类型,拷贝就是直接把值给另一个对象1.浅拷贝(只拷贝原对象的地址)原对象的值发生变化,拷贝对象的值也会随之发生变化,因为原对象和拷贝对象是同一块空间/......
  • LLM-通义千问:掌握的Java知识过于零散,怎么系统地串一串
    要系统地整理和深化你的Java知识,可以遵循以下几个步骤和策略:1.回顾基础语言基础:从Java的基本语法开始,包括变量声明、数据类型、运算符、控制结构(if-else,for,while等)、数组和方法定义。面向对象编程:深入理解类与对象、继承、封装、多态这些核心概念,并实践如何设计良好的类......