网站建设属于什么税,wordpress根据地方调整运费,seo教程合集,嘉兴招聘网七星填数
如图【图1.png】所示。 在七角星的14个节点上填入1~14 的数字#xff0c;不重复#xff0c;不遗漏。 要求每条直线上的四个数字之和必须相等。 图中已经给出了3个数字。 请计算其它位置要填充的数字#xff0c;答案唯一。 填好后#xff0c;请提交绿色节点的4个…七星填数
如图【图1.png】所示。 在七角星的14个节点上填入1~14 的数字不重复不遗漏。 要求每条直线上的四个数字之和必须相等。 图中已经给出了3个数字。 请计算其它位置要填充的数字答案唯一。 填好后请提交绿色节点的4个数字从左到右用空格分开
比如12 5 4 8 当然这不是正确的答案。
注意只提交4个用空格分开的数字不要填写任何多余的内容。
答案10 3 9 8 解析我们首先要对这十四个结点编号当然编号可以随意定但是下面的判断语句要对应着修改。这个题就是简单的进行dfs即可。但是要注意这里一定要进行剪枝虽然不是暴力循环枚举答案但是回溯递归的的效率其实并没有强很多所以如果不进行剪枝的话一定会发生栈溢出。
public class Main {static int[] a {1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13};static int [] b;static boolean[] c, d;public static void main(String[] args) {c new boolean[14];d new boolean[14];b new int[14];b[0] 6;b[8] 14;b[10] 11;c[0] true;c[8] true;c[10] true;f(0);}private static void f(int i) {// 剪枝if (i 9) {if (b[1] b[2] b[3] b[4] ! b[0] b[2] b[5] b[8]) {return;}}if (i 11) {if (b[1] b[2] b[3] b[4] ! b[0] b[3] b[6] b[10]) {return;}}if (i 12) {if (b[1] b[2] b[3] b[4] ! b[1] b[5] b[7] b[11]) {return;}}if (i 13) {if (b[1] b[2] b[3] b[4] ! b[9] b[10] b[11] b[12]) {return;}}if (i 14) {if (b[1] b[2] b[3] b[4] ! b[7] b[8] b[12] b[13]) {return;}if (b[1] b[2] b[3] b[4] ! b[4] b[6] b[9] b[13]) {return;}for (int j 0; j c.length; j) {System.out.print(j0 ? : );System.out.print(b[j]);}return;}if (c[i] false) {for (int j 0; j a.length; j) {if (d[j] false) {d[j] true;c[i] true;b[i] a[j];f(i 1);c[i] false;d[j] false;}}} else {f(i 1);}}
}