1.动态规划importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){// 最大椅子数量为 30创建数组存储方案数intmaxN30;// ways[i] 表示 i 个椅子的合法摆放总方案数long[]waysnewlong[maxN1];// 初始化边界条件 // 1个椅子只能放AB无法成对只有1种方案ways[1]1;// 2个椅子AA、BB共2种方案ways[2]2;// 动态规划递推计算 // 递推公式ways[i] 结尾放A的方案数 结尾放BB的方案数// 结尾放A ways[i-1]结尾放BB ways[i-2]//注意是小于等于for(inti3;imaxN;i){ways[i]ways[i-1]ways[i-2];}// 处理输入输出 ScannerscannernewScanner(System.in);// 读取测试用例数量inttestCountscanner.nextInt();// 循环处理每一组测试用例while(testCount0){// 读取当前椅子数量intchairNumscanner.nextInt();// 输出对应方案数System.out.println(ways[chairNum]);testCount--;}// 关闭扫描器scanner.close();}}2.暴力解法无法过用例3.最大能获得的分数importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);intnsc.nextInt();int[]arrnewint[n];//输入图形的大小for(inti0;in;i){arr[i]sc.nextInt();}inttotal0;//但是这里注意的是。//每次合并之后下一个要继承合并所以需要一个中间值inttemp0;//从左向右逐个合并 n个数字合并n-1次//然后这里要再注意下。防止下标越界//1 2 3//1 2 3//score 01*22//336//score 23*311for(inti0;in-1;i){//这里先存储temparr[i]arr[i1];//计算当前的总得分totalarr[i]*arr[i1];//最后把前面的数字作为一个存下来--//这是一个隐形的隐藏条件题目里没说但是就是这样的arr[i1]temp;}System.out.print(total);}}