zoukankan      html  css  js  c++  java
  • 蓝桥杯——说好的进阶之入学考试

    问题描写叙述
      辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。

    为此,他想拜附近最有威望的医师为师。

    医师为了推断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,採每一株都须要一些时间。每一株也有它自身的价值。

    我会给你一段时间,在这段时间里,你能够採到一些草药。

    假设你是一个聪明的孩子,你应该能够让採到的草药的总价值最大。


      假设你是辰辰。你能完毕这个任务吗?

    输入格式
      第一行有两个整数T(1 <= T <= 1000)和M(1 <= M <= 100)。用一个空格隔开,T代表总共可以用来採药的时间,M代表山洞里的草药的数目。接下来的M行每行包含两个在1到100之间(包含1和100)的整数。分别表示採摘某株草药的时间和这株草药的价值。
    输出格式
      包括一行。这一行仅仅包括一个整数。表示在规定的时间内。能够採到的草药的最大总价值。

    例子输入
    70 3
    71 100
    69 1
    1 2
    例子输出
    3
    数据规模和约定
      对于30%的数据,M <= 10;
      对于所有的数据,M <= 100。
    import java.util.Scanner;
    
    
    public class Main{
    
    	static int W ;
    	static int[] w_arr ;
    	static int[] p_arr ;
    	static int[][] v;
    
    	public static void main(String[] args) {
    		Scanner scanner=new Scanner(System.in);
    		String[] sarr=scanner.nextLine().split(" ");
    		W=Integer.parseInt(sarr[0]);
    		w_arr=new int[Integer.parseInt(sarr[1])];
    		p_arr=new int[w_arr.length];
    		
    		for(int i=0;i<w_arr.length;i++)
    		{
    			sarr=scanner.nextLine().split(" ");
    			w_arr[i]=Integer.parseInt(sarr[0]);
    			p_arr[i]=Integer.parseInt(sarr[1]);
    		}
    
    		k();
    	}
    	
    
    	static void k()
    	{
    		int[] b=new int[W+1];
    		for(int i=0;i<w_arr.length;i++)
    		{
    			for(int j=W;j>=w_arr[i];j--)
    			{
    				//b[j]= Math.max(b[j], b[j-w_arr[i]]+p_arr[i]);
    				if(b[j-w_arr[i]]+p_arr[i]>b[j])
    				{
    					b[j] =b[j-w_arr[i]]+p_arr[i];
    				}
    			}
    		}
    		System.out.println(b[W]);//max
    	}
    }
    



  • 相关阅读:
    【学习总结】 小白CS成长之路
    Java程序员面试题收集(1)
    ECSTORE2.0 去页面底部版权
    vue-cli安装
    linux下安装nodejs
    Access denied for user 'root'@'localhost' (using password: YES)的解决
    想说的话
    十三:CSS之CSS的四种使用方法和优先级
    十二:CSS之基础语法
    十一:HTML之实现基本网页结构
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5286029.html
Copyright © 2011-2022 走看看