当前位置: 首页 > article >正文

简单线性DP

数字三角形--简单线性DP

题目链接:数字三角形

解题代码:

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
    static int N=510;
    static int INF= (int) -1e9;
    static String[] q;
    static int[][]f=new int[N][N];
    static int[][]a=new int[N][N];
    public static void main(String[] args)throws Exception {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        q=br.readLine().split(" "); 
        int n= Integer.parseInt(q[0]);
        for(int i=1;i<=n;i++){
            q=br.readLine().split(" ");
            for(int j=1;j<=i;j++){
                a[i][j]= Integer.parseInt(q[j-1]);
            }
        }
        for(int i=0;i<=n;i++)
            for(int j=0;j<=i+1;j++)
                f[i][j]=INF;
        f[1][1]=a[1][1];

        for(int i=2;i<=n;i++){
            for(int j=1;j<=i;j++){
                f[i][j]=Math.max(f[i-1][j-1]+a[i][j],
                        f[i-1][j]+a[i][j]);
            }
        }

        int x=0;
        for(int i=1;i<=n;i++)
            if(f[n][i]>x)x=f[n][i];
        System.out.println(x);
    }
}

最长上升子序列

题目链接:最长上升子序列

题解代码:

//package 线性DP.最长上升子序列;

import java.util.Scanner;

public class Main {
    static int N=1010;
    static int[]f=new int[N];
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] a=new int[n+1];
        
        for(int i=1;i<=n;i++)
            a[i]=sc.nextInt();

        //求得是以每一个数结尾的上升子序列
        for(int i=1;i<=n;i++){
            f[i]=1;
            for(int j=1;j<i;j++){
                if(a[i]>a[j])
                    f[i]=Math.max(f[i],f[j]+1);
            }
        }
        int x=f[1];
        for(int i=2;i<=n;i++)
            if(f[i]>x)x=f[i];
        System.out.println(x);
    }
}


http://www.kler.cn/a/415131.html

相关文章:

  • GPT视角下,如何在密码学研究中找到属于你的方向?
  • Vue.js 中的事件处理
  • NLP信息抽取大总结:三大任务(带Prompt模板)
  • c++设计模式模块与系统
  • 关于Vscode配置Unity环境时的一些报错问题(持续更新)
  • 九、Spring Boot集成Spring Security之授权概述
  • 通过docker overlay2 目录名查找容器名和容器ID
  • 架构第十一章:zabbix
  • Vue 3 KeepAlive 教程
  • Unity3d C# 实现一个基于UGUI的自适应尺寸图片查看器(含源码)
  • 【CSS】设置文本超出N行省略
  • 第六篇:其他窗口部件 QLineEdit
  • 更快更省更划算:了解亚马逊云科技自研芯片
  • Vue表单绑定入
  • 【GPT】为什么要力量训练?
  • 使用easyexcel导出复杂模板,同时使用bean,map,list填充
  • MT管理器v2.14.5-MT管理器-能强大的Android文件管理工具,主要用于管理和编辑手机中的文件-MT管理器vip版本下载-登录即可有vip
  • 02.ES6(2)
  • docker-elasticsearch-kibana-logstash
  • Vue Promise的使用,界面使用异步线程循环执行方法(模拟线程)
  • Java基础面试题08:Java中Exception和Error有什么区别?
  • IDEA如何快速地重写方法,如equals、toString等
  • Sybase数据恢复—Sybase数据库无法启动,Sybase Central连接报错的处理案例
  • 反向代理服务器的用途
  • uniapp关闭sourceMap的生成,提高编译、生产打包速度
  • 如何配置 Gitea 的邮箱功能