hdu4277 USACO ORZ

来源:互联网 发布:大闹骑兵进阶数据 编辑:程序博客网 时间:2024/04/29 07:44
import java.util.HashSet;import java.util.Scanner;public class Triangle {int a,b,c;int arr[]=new int[1010],n,sum;long M=200010;HashSet<Long> mp=new HashSet<Long>();void dfs(int d){if(d>n){if(a+b>c&&a+c>b&&b+c>a){int x=Math.min(a,Math.min(b,c));int y=Math.max(a,Math.max(b,c));mp.add(x+(a+b+c-x-y)*M+y*M*M);}return;}sum-=arr[d];a+=arr[d];dfs(d+1);a-=arr[d];b+=arr[d];dfs(d+1);b-=arr[d];c+=arr[d];dfs(d+1);c-=arr[d];}Scanner scan=new Scanner(System.in);void run(){int cas=scan.nextInt();while(cas-->0){n=scan.nextInt();sum=0;for(int i=1;i<=n;i++){arr[i]=scan.nextInt();sum+=arr[i];}a=b=c=0;mp.clear();dfs(1);System.out.println(mp.size());}}public static void main(String[] args){new Triangle().run();}}

hashset看起来很好用啊!

转载自  http://blog.csdn.net/kksleric/article/details/7958600

原创粉丝点击