zoukankan      html  css  js  c++  java
  • hdu-2546 饭卡 01背包

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2546

    import java.util.Scanner;
    
    public class Main {
    	public int max(int a,int b){
    		 return a>b?a:b;
    	 }
    	public int packet(int n,int price[],int money,int exp){
    		int f[]=new int[1024];
    		for(int i=0;i<n;i++){
    			    f[0]=0;
    		    }
    		for(int i=0;i<n;i++)
    			if(i!=exp)               //最贵的菜留到最后买
    			for(int j=money;j>=price[i];j--){
    				f[j]=max(f[j],f[j-price[i]]+price[i]);
    			}
    			return money-f[money];
    	}
    	public static void main(String[] args) {
    		Main m=new Main();
    		Scanner sc=new Scanner(System.in); 
    		int n;       //菜的数量
    		int money;   //余额
    		int price[]=new int[1024];   //菜的价格
    		while(sc.hasNext()){
    			int max=0;           //记录最贵的菜
    			int exp=0;             //记录最贵的菜的下标
    			n=sc.nextInt();
    			if(n==0)
    				break;
    			for(int i=0;i<n;i++){
    				price[i]=sc.nextInt();
    				if(max<price[i]){
    					max=price[i];
    					exp=i;
    				}
    			}
    			money=sc.nextInt();
    			if(money>=5){
    				System.out.println(m.packet(n,price,money-5,exp)+5-max);       //买最贵的菜后的余额
    			}
    			else{
    				System.out.println(money);
    			}
    			
    		}
    
    	}
    
    }
     
    

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    调接口
    500 Internal Server Error
    htaccess跨域
    Header add Access-Control-Allow-Origin: *
    如何写jquery插件
    笔记
    互联网思维,谁的思维?
    超强js博客值得学习!!!
    学好js的步骤
    NOIP2000 进制转换
  • 原文地址:https://www.cnblogs.com/dingxiaoyue/p/4931850.html
Copyright © 2011-2022 走看看