【蓝桥杯算法训练】无聊的逗
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n = scanner.nextInt(); int[] bars=new int[n];//存每根木棒的长度 for(int i=0;i<n;i++) { bars[i]=scanner.nextInt(); } int[] status=new int[1<<n];//n根木棒一共有1<<n种粘成长棒的方式 for(int i=0;i<(1<<n);i++) { for(int j=0;j<n;j++) { if((i&(1<<j))!=0) { status[i]+=bars[j];//为每种方式计算长棒的长度 } } } int ans=0; for(int i=0;i<(1<<n);i++) { for(int j=0;j<(1<<n);j++) { if((i&j)==0&&status[i]==status[j])//如果两个方式没有木棒是重复的并且是等长的,就更新ans { ans=Math.max(status[i],ans); } } } System.out.println(ans); } }
上一篇:
IDEA上Java项目控制台中文乱码