摘要:
红与黑 没错,与 迷宫 一模一样! ̄□ ̄|| 1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 5 const int N=25; 6 int w,h,ans,a[N][N],che[8]; 7 bool check( 阅读全文
摘要:
迷宫 因为不需要找最优路径,只需要得到结果即可(YES/NO),所以走过的位置不需要还原。 显然,使用这种方式大大减少了运行时间(降低了时间复杂度)。 下面验证其合理性: 每一点只要可走就可以重复走、来回走(当然程序内部肯定不这样做),换言之,任何相交路径中的任意两点都是相通的。 到达任一点可能有多 阅读全文
摘要:
八皇后 首先通过 八皇后问题 求解出所有的结果,然后将每一个结果转化为一个八位的整数(算是本题的一个亮点吧) 将这些八位的整数集进行排序,然后依据输入输出相应的答案。 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 us 阅读全文
摘要:
八皇后问题 首先可以试图去简化问题,将问题转化为为每一列确定一个有效的行号。 因为同一列只能有一个皇后,并且需要在八列中确定八个皇后,即每一列都必定有且只有一个皇后。 经过简化后,显然,通过一个一维数组即可以确定一组有效解。 关于check: 不为同一行或同一列的判定比较简单(这里省略) (i1,j 阅读全文
摘要:
LETTERS 由于是找一条最优路径(最多可以经过几个字母),所以在深度遍历回来的时候要注意还原。 否则最优路径会受到其他路径的干扰! 另外关于check这里写的过于冗余,可以通过构造数组来改善。 1 #include<iostream> 2 #include<cstdio> 3 using nam 阅读全文
摘要:
自然数的拆分 与 分解因数 、 组合的输出 不能说相似,只能说是一模一样。 大致思路参考以上两篇。 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 5 const int N=105; 6 int n,a[N]; 7 阅读全文
摘要:
组合的输出 与 分解因数 类似,为递归函数再指定一个形参,约束循环的起始条件 每满足一次临界条件,就输出一次结果。 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 5 const int N=25; 6 int n,r 阅读全文