uva 10306 e-Coins
来源:互联网 发布:淘宝申请退款流程手机 编辑:程序博客网 时间:2024/06/07 12:32
import java.math.BigInteger;import java.util.*;public class Main{ public static void dp(int[][] arr,int num,int target){ int[][] table = new int[target+1][target+1]; for(int i=0;i<=target;i++){ Arrays.fill(table[i], Integer.MAX_VALUE); } table[0][0] = 0; for(int i=0;i<num;i++){ for(int j=arr[i][0];j<=target;j++){ for(int k=arr[i][1];k<=target;k++){ if(table[j-arr[i][0]][k-arr[i][1]]!=Integer.MAX_VALUE){ table[j][k] = Math.min(table[j][k], table[j-arr[i][0]][k-arr[i][1]]+1); } } } } int result = 99999999; int t=target*target; for(int i=0;i<=target;i++){ for(int j=0;j<=target;j++){ if(i*i+j*j==t&&result>table[i][j]) result = table[i][j]; } } if(result==99999999){ System.out.println("not possible"); }else{ System.out.println(result); } } public static void main (String [] args) throws Exception { Scanner scan = new Scanner(System.in); int cases = scan.nextInt(); for(int i=0;i<cases;i++){ int num = scan.nextInt(); int target = scan.nextInt(); int arr[][] = new int[num][2]; for(int j=0;j<num;j++){ arr[j][0] = scan.nextInt(); arr[j][1] = scan.nextInt(); } dp(arr,num,target); } }}
这个就是完全背包了。想了半天,解空间还是想不出来。
然后看了背包九讲里面的二维费用和网上的解题报告。
这个解空间,哎其实仔细想想还是能想到的。被完全背包固定住了思维。。。
- uva 10306 e-Coins
- UVA 10306 e-Coins
- uva 10306 e-Coins
- UVa 10306 - e-Coins
- UVA - 10306 e-Coins
- UVa:10306 e-Coins
- UVA 10306 e-Coins
- uva 10306 - e-Coins
- UVa 10306 - e-Coins
- UVA - 10306 e-Coins
- UVA - 10306 e-Coins
- UVA - 10306 e-Coins
- UVA 10306 - e-Coins
- uva 10306 - e-Coins
- UVA 10306--e-Coins+dp
- UVA 10306 - e-Coins(完全背包)
- uva 10306 - e-Coins(完全背包)
- uva 10306 e-Coins(二维完全背包)
- UVA 10801 By ACReaper
- 网络I/O模型
- VS2010rdlc报表—根据查询条件产生报表
- DCM使用详解
- metasploit使用辅助模块
- uva 10306 e-Coins
- 就简单的打开一个网页,知道多少协议为你服务吗?
- 并查集 Poj 1838 + 1611 + 1962 + Zoj 2833
- JS函数的实际参数 简介
- SQL优化查询
- shmget() ------建立共享内存
- 博士遇到三个人--诚实族,两面族,说谎族
- python学习(二)之文件处理与错误异常
- Java中堆内存和栈内存详解