zoukankan      html  css  js  c++  java
  • 完美世界笔试(动态规划,背包问题)

    小艺每天都在吃和睡中浑浑噩噩的度过。
     然而肚子是有容量上限V的。
     假设,小艺有n种零食,每种零食的甜蜜值为b,占据小肚子空间ai.
    小艺想知道在自己肚子空间上限允许范围内能获得的最大甜蜜值是多少。

     输入描述:
     第一行输入整数v和n,分别代表肚子容量上限,和零食种类数(1<=v,n<=1000)
    以下n行每行包含两个整数,代表每种零食占据肚子空间a和甜蜜值b.(1<=a,b<=1000)
     输出描述:
     最大甜蜜值


    70 3
    71 100
    69 1
    1 2

    输出:140

    代码:

     1 import java.util.Scanner;
     2 
     3 public class Wanmeishijie01 {
     4 
     5     public static void main(String[] args) {
     6         // TODO Auto-generated method stub
     7         // 小艺每天都在吃和睡中浑浑噩噩的度过。
     8         //
     9         // 然而肚子是有容量上限V的。
    10         //
    11         // 假设,小艺有n种零食,每种零食的甜蜜值为b,占据小肚子空间ai.
    12         //
    13         // 小艺想知道在自己肚子空间上限允许范围内能获得的最大甜蜜值是多少。
    14         //
    15         // 输入描述:
    16         //
    17         // 第一行输入整数v和n,分别代表肚子容量上限,和零食种类数(1<=v,n<=1000)
    18         // 以下n行每行包含两个整数,代表每种零食占据肚子空间a和甜蜜值b.(1<=a,b<=1000)
    19         //
    20         // 输出描述:
    21         //
    22         // 最大甜蜜值
    23 //         70 3
    24 //         71 100
    25 //         69 1
    26 //         1 2
    27 
    28         Scanner sc = new Scanner(System.in);
    29         String line0 = sc.nextLine();
    30         String[] sline = line0.split(" ");
    31         // for(String k:sline)
    32         int v = Integer.parseInt(sline[0]);
    33         int n = Integer.parseInt(sline[1]);
    34         int[] varr = new int[n];
    35         int[] tarr = new int[n];
    36         for (int i = 0; i < n; i++) {
    37             String line1 = sc.nextLine();
    38             String[] sl = line1.split(" ");
    39             varr[i] = Integer.parseInt(sl[0]);
    40             tarr[i] = Integer.parseInt(sl[1]);
    41         }
    42 //    for(int k:varr)
    43 //        System.out.println(k);
    44         System.out.println(tianMi(varr,tarr,v,n));
    45     }
    46     public static int tianMi(int[] varr,int[] tarr,int v,int n) {
    47         int maxm=1000;
    48         int k=0;
    49         int tianmi=0;
    50         int[] f=new int[maxm];
    51 //        int[] c=new int[maxm];
    52 //        int[] w=new int[maxm];
    53         for(int i=0;i<n;i++) {
    54             for(k=varr[i];k<=v;k++)
    55                 f[k]=Math.max(f[k-varr[i]]+tarr[i],f[k]);
    56         }
    57         tianmi=f[v];
    58         return tianmi;
    59     }
    60 
    61 }
  • 相关阅读:
    mysql "The user specified as a definer ('root'@'%') does not exist" 问题
    mysql添加Federated引擎问题
    D7经典脚本[multi/handler]
    redhat7.4安装vertica-9.1.0教程
    批量在当前目录下所有的文件中添加指定字段
    mysql 水平分表技术
    linux普通用户提权
    两步完成利用procdump64+mimikatz获取win用户密码
    hibernate中对象的三种状态分析
    Hibernate 入门案例
  • 原文地址:https://www.cnblogs.com/ncznx/p/9693015.html
Copyright © 2011-2022 走看看