zoukankan      html  css  js  c++  java
  • 动态规划算法

    package poj;
    
    /**
     * baolisousuo
     * @author Administrator
     *
     */
    public class Solution2 {
    
    	private static int [] arr = {1,2,4};
    	private static int aim = 3;
    	
    	public static void main(String[] args) {
    		System.out.println(arr[0]);
    		int result = countWays(arr,aim);
    		System.out.println(result);
    	}
    	
    	public static int coins1(int[]arr,int aim){
    		if (arr == null || aim <0 || arr.length == 0) {
    			return 0;
    		}
    		return process1(arr,0,aim);
    	}
    
    	private static int process1(int[] arr, int index, int aim) {
    		int res = 0;
    		if (index == arr.length) {
    			res = aim==0?1:0;
    		}else{
    			for (int i = 0;arr[index]*i <= aim;i++) {
    				res+=process1(arr,index+1,aim-arr[index]*i);
    			}
    		}
    		return res;
    	}
    	
    	//jiyi
    	public static int coins2(int[]arr,int aim){
    		if (arr == null || arr.length == 0||aim <0) {
    			return 0;
    		}
    		int [][]map = new int[arr.length+1][aim+1];
    		return process2(arr,0,aim,map);
    	}
    
    	private static int process2(int[] arr, int index, int aim, int[][] map) {
    		int res = 0;
    		if (index == arr.length) {
    			res = aim == 0?1:0;
    		}else{
    			int mapValue = 0;
    			for (int i = 0;arr[index] * i <= aim;i++) {
    				mapValue = map[index+1][aim-arr[index]*i];
    				if (mapValue != 0) {
    					res+=mapValue == -1?0:mapValue;
    				}else{
    					res+=process2(arr,index+1,aim-arr[index]*i,map);
    				}
    			}
    		}
    		map[index][aim] =res == 0?-1:res;
    		return res;
    	}
    	//dp
    	public static int countWays(int []arr,int aim){
    		int [] f = new int[1001];
    		for (int i = 0;i<f.length;i++) {
    			f[i] = 0;
    		}
    		f[0] = 1;
    		for (int i = 0;i<arr.length;i++) {
    			for (int j = arr[i];j<=aim;j++) {
    				f[j] =f[j-arr[i]]; 
    			}
    		}
    		
    		return f[aim];
    	}
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    }
    

      

  • 相关阅读:
    luogu 2742 二维凸包
    poj2398 Toy Storage 计算几何,叉积,二分
    luoguP1742 最小圆覆盖
    bzoj4501 旅行
    cf1173 D. Nauuo and Circle
    bzoj3745: [Coci2015]Norma 分治,单调队列
    bzoj1176: [Balkan2007]Mokia cdq
    luoguP3964 [TJOI2013]松鼠聚会
    浅谈数学期望
    tarjan模板(带注释)
  • 原文地址:https://www.cnblogs.com/airycode/p/5124667.html
Copyright © 2011-2022 走看看