上一页 1 ··· 101 102 103 104 105 106 107 108 109 ··· 182 下一页
摘要: 题意: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)
摘要: 题意:从n个人中选出m个,每个人有固定的p值,d值,要求使m个人的p总和和d总和的差的绝对值最小,若有多解则取两者和最大的。分析:dp本题为special judge,不需要考虑多解情况。f[i][j]表示在选m个人中的第i个人的时候使所有已选中的人的p,d差为j时,所能获得的p,d最大和。f[i + 1][j + p[k] - d[k]] = f[i][j] + p[k] + d[k];(要求k之前没有选过,要查看f[i][j]的完整路径,确保无k)填写完成后,观察f[m]找到最小差值,最大和。知道和差自然可以求出总的p,d。也可以用另一种方法:三维f[i,j,k]表示前i取j差值为k的最大 阅读全文
posted @ 2011-07-21 20:48 undefined2024 阅读(2906) 评论(0) 推荐(0)
上一页 1 ··· 101 102 103 104 105 106 107 108 109 ··· 182 下一页