摘要: 整数拆分问题:给定一个正整数n,将n拆分为若干数字的和,问有多少种方法?此题为整数拆分问题的子问题,拆分出的数字要求是2的幂次。定义dp[i][k]表示枚举到第k个数字时数字i的拆分方案数。则有状态转移方程: dp[i][k] = dp[i][k - 1] + dp[i - num[k]][k];... 阅读全文
posted @ 2015-08-14 19:27 hxy_has_been_used 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 比较简单的sg函数的应用,将每一堆的sg值求出,则总游戏的sg值为3个异或起来。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int N = 1001; 7 const int M = 20; 8 int... 阅读全文
posted @ 2015-08-14 16:16 hxy_has_been_used 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 和上一个题基本一样。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 const int N = 101; 10 char maz... 阅读全文
posted @ 2015-08-14 15:22 hxy_has_been_used 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 对于这类需要钥匙才能通过的迷宫来说,一般visit数组会开成三维的:bool visit[N][N][1 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 const int N =... 阅读全文
posted @ 2015-08-14 14:31 hxy_has_been_used 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 很显然对于这个题来说,有的点可能需要重复走(比如旁边有Bomb-Reset-Equipment,可能你需要去一下再回来),所以标记每个点的时候应该记录访问该点时的剩余时间,如果下一次剩余时间更多则可以加入队列,否则的话加入这个点是没有意义的(因为花费的总步数更多但是剩余的时间没有变多)。 1 #in... 阅读全文
posted @ 2015-08-14 13:34 hxy_has_been_used 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 剪枝还是挺多的,不过都比较容易想,主要是复习一下奇偶性剪枝。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const int N = 7; 8 char maze[N][N]; 9 int d... 阅读全文
posted @ 2015-08-14 10:01 hxy_has_been_used 阅读(121) 评论(0) 推荐(0) 编辑