备考蓝桥杯(23)G将军准备敢死队 java实现
2018-03-31 01:02
489 查看
package pers.robert.lanqiaobei05; import java.util.ArrayList; import java.util.Scanner; /** * G将军有一支训练有素的军队,这个军队除开G将军外,每名士兵都有一个直接上级(可能是其他士兵,也可能是G将军)。现在G将军将接受一个特别的任务,需要派遣一部分士兵(至少一个)组成一个敢死队,为了增加敢死队队员的独立性,要求如果一名士兵在敢死队中,他的直接上级不能在敢死队中。 请问,G将军有多少种派出敢死队的方法。注意,G将军也可以作为一个士兵进入敢死队。 输入格式 输入的第一行包含一个整数n,表示包括G将军在内的军队的人数。军队的士兵从1至n编号,G将军编号为1。 接下来n-1个数,分别表示编号为2, 3, ..., n的士兵的直接上级编号,编号i的士兵的直接上级的编号小于i。 输出格式 输出一个整数,表示派出敢死队的方案数。由于数目可能很大,你只需要输出这个数除10007的余数即可。 样例输入1 3 1 1 样例输出1 4 样例说明 这四种方式分别是: 1. 选1; 2. 选2; 3. 选3; 4. 选2, 3。 样例输入2 7 1 1 2 2 3 3 样例输出2 40 数据规模与约定 对于20%的数据,n ≤ 20; 对于40%的数据,n ≤ 100; 对于100%的数据,1 ≤ n ≤ 100000。 资源约定: 峰值内存消耗(含虚拟机) < 256M CPU消耗 < 2000ms 请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。 所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。 注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。 注意:主类的名字必须是:Main,否则按无效代码处理。 * @author Robert * */ public class The07ShuDeJieXiDemo1_question { static ArrayList<Integer> a = new ArrayList<Integer>(); static int sum = 0; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] s = new int ; for (int i = 1; i < n; i++) { s[i] = sc.nextInt(); } s(0,n,s); System.out.println(sum); } public static void s(int code,int n,int[] s){ if(code==n){//到达终点 if(a.size()!=0){//栈不能为空,也就是不能都不去 sum++; } return; } if(a.contains((Integer)s[code])){//如果a里面已经包含了code的领导,code就不去了继续往下遍历code+1 s(code+1,n,s); }else{//如果不包含code的领导,code可以选择去也可以选择不去 s(code+1,n,s);//不去 a.add(code+1);//加入栈,代表去 s(code+1,n,s);//去 a.remove(a.size()-1);//每次一种情况过后,从后往前出栈,防止影响其他情况 } } }
相关文章推荐
- 备考蓝桥杯(16)包子问题 java实现
- 备考蓝桥杯(18)方格填数 java实现
- 备考蓝桥杯(5)扑克排列 java实现
- 备考蓝桥杯(27)迷宫走法(java实现)
- 备考蓝桥杯(19)方格填数(DFS) java实现
- 备考蓝桥杯(38)迭代器输出java实现
- 蓝桥杯备考(15)NQueen(经典回溯) java实现
- 备考蓝桥杯(8)取球博弈 java实现
- 备考蓝桥杯(12)输入日期 java实现
- 备考蓝桥杯(29)基因牛的繁殖java实现
- 备考蓝桥杯(1)算式☆☆☆ + ☆☆☆ = ☆☆☆ java 实现(全排列)
- 蓝桥杯备考(11)微生物增殖 java实现
- 备考蓝桥杯(37)超级无敌经典的全排列算法 java实现
- 备考蓝桥杯(13)顺时针螺旋填入矩阵 java实现
- 备考蓝桥杯(28)黑洞数字java实现
- 备考蓝桥杯(9)密码转换器 java实现
- 备考蓝桥杯(34)泊松汾酒java实现exeforward
- 备考蓝桥杯(10)矩阵旋转 java实现
- 备考蓝桥杯(26)漏掉的账单明细,(遍历所有情况)(java实现)(exforward)
- 备考蓝桥杯(14)playfair加密java实现