动态规划 删除消息
来源:互联网 发布:家庭装修网络布线方案 编辑:程序博客网 时间:2024/05/21 10:53
可以改进 有时间改进
package com.bluecup.org;import java.util.Scanner;public class Min_DeleteNote {/** * @param args */static int f[][][]=new int[20][20][2];static int t[][]=new int[20][2];static int m[][]=new int[20][20];static int n;public static void main(String[] args) {// TODO Auto-generated method stub Scanner scan=new Scanner(System.in); n=scan.nextInt(); for(int i=0;i<n;i++) { int start=scan.nextInt(); int time=scan.nextInt(); t[i][0]=start; t[i][1]=time; } f[0][0][0]=f[0][0][1]=t[0][1]; for(int i=0;i<n-1;i++) { for(int j=i+1;j<n;j++) { getMaxAndMin(i,j); f[i][j][0]=max; f[i][j][1]=min; //System.out.println(max+" "+min); } } m[0][0]=t[0][0]+t[0][1]; // System.out.println(f[0][n-1][1]+" "+f[0][n-1][0]); for(int i=1;i<n;i++) { m[0][i]=t[i][0]+f[0][i][1]+f[0][i][0]; int p=0; if(i!=1) { p=m[0][i-1]; if(p>t[i][0]) p=p+t[i][1]; else p=t[i][0]+t[i][1]; } else { if(m[0][0]>t[1][0]) p=m[0][0]+t[1][1]; else p=t[1][0]+t[1][1]; } m[0][i]=m[0][i]<p?m[0][i]:p; //System.out.println(m[0][i]); for(int j=1;j<i;j++) { p=0; p=m[0][j-1]; if(p>t[i][0]) p=p+f[j][i][0]+f[j][i][1]; else p=t[i][0]+f[j][i][0]+f[j][i][1]; m[0][i]=m[0][i]<p?m[0][i]:p; } } for(int i=0;i<n;i++) System.out.println(m[0][i]);}static int max;static int min; static void getMaxAndMin(int i,int j) { int m,n; m=n=t[i][1]; i++; for(;i<=j;i++) { if(m<t[i][1]) m=t[i][1]; if(n>t[i][1]) n=t[i][1]; } max=m; min=n; }}
0 0
- 动态规划 删除消息
- 动态规划!!!动态规划!!!
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- opengl学习
- 明天开始写博客吧...
- 推荐一款HTML原型设计工具
- 几款在线编辑器汇总
- 【数据结构】 串的基本操作
- 动态规划 删除消息
- HTTP协议头部与Keep-Alive模式详解
- 将双向循环链表L=(a1,a2,...,an)改造成L=(a1,a3,...,an,...,a4,a2)
- Android 自定义View (三) 圆环交替 等待效果
- 位图排序算法(计数排序)
- 电子 笔记
- JavaSE I/O 输出字节流 OutputStream
- JAX-RS入门 十二: 可伸缩的JAX-RS应用
- 求二叉树中节点的最大距离