摘要:
题意:4柱子hanoi,给出n<=12,求最少步数。分析:我们知道3柱子的hanoi,步数=2^n-1。题中给出四个的解题思路,用dp求解,题中说先把n分成两部分,A部分用4柱子方法挪到2柱子,B部分用3柱子法挪到4柱子,然后用4柱子法把A挪到4柱子。假设B部分有k个,则g[i] = g[i - j] * 2 + f[j];g[i]表示4柱子法,f[i]是3柱子法,挪动i个盘子的步数。View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring& 阅读全文
posted @ 2011-07-22 19:25
undefined2024
阅读(355)
评论(0)
推荐(0)
摘要:
简单题View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>using namespace std;int n, m;int main(){ //freopen("t.txt", "r", stdin); int x, y; scanf("%d%d", &n, &m); x = 0; y = 0; for (int i 阅读全文
posted @ 2011-07-22 17:48
undefined2024
阅读(163)
评论(0)
推荐(0)
摘要:
题意:给定一个长方体,和长方体表面上的一个点。求该点在长方体表面上移动到长方体一个(确定的)顶点的最短距离。分析:陷阱就在于可能需要经过三个面,而不是两个面,如果一个点在顶面,那么可能需要经过顶面、后面和左面,也可能经过顶面、右面和前面。View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;int main(){ //freopen("t.txt", "r", 阅读全文
posted @ 2011-07-22 16:56
undefined2024
阅读(229)
评论(0)
推荐(0)
摘要:
dfs对于多解的判断很复杂。另外注意输出的括号中的数字是邮票的种类。View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>using namespace std;#define maxn 300int n;int m, tot;int stamp[maxn];int ans[5], ansnum;int sel[5];bool tie, none;bool vis[maxn];void 阅读全文
posted @ 2011-07-22 10:15
undefined2024
阅读(333)
评论(2)
推荐(0)