UVa 562 Dividing Coins

来源:互联网 发布:js教程下载 编辑:程序博客网 时间:2024/04/29 08:18
/*UVa 562 Dividing Coins * 思路 : 如果arr[j]==1 那么 arr[j+a[i]]==1*/import java.util.Arrays;import java.util.Scanner;class Main {static final int MAXN = 50010;int[] arr = new int[MAXN];int[] a = new int[105];public static void main(String[] args) {Scanner scanner = new Scanner(System.in);Main mm = new Main();int n = scanner.nextInt();while (n > 0) {n--;Arrays.fill(mm.arr, 0);mm.arr[0] = 1;int m = scanner.nextInt();int sum = 0;for (int i = 0; i < m; i++) {mm.a[i] = scanner.nextInt();sum += mm.a[i];}for (int i = 0; i < m; i++) {for (int j = sum; j >= mm.a[i]; j--) {if (mm.arr[j - mm.a[i]] == 1)mm.arr[j] = 1;}}int ans = 0;for (int j = (sum >> 1); j >= 0; j--) {if (mm.arr[j] == 1) {ans = j;break;}}System.out.println(sum - (2 * ans));}}}

原创粉丝点击