IDA*
樂_smile
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
UVa 10384 推门游戏(The Wall Pusher)
哈哈哈哈哈哈哈哈哈哈哈哈哈哈 我终于AC啦! 俺减了两次枝 #include<bits/stdc++.h> #define LL long long #define ms(s) memset(s, 0, sizeof(s)) #define INF 0x7fffffff using namespace std; // 4 * 6 const int r = 4; const int c...原创 2019-10-20 18:46:51 · 190 阅读 · 0 评论 -
UVa 11212 编辑书稿(Editing a Book)
题目: 你有一篇由n个自然段组成的文章,希望将他们排列成1,2,3 ……, n 可以用剪切和粘贴键完成任务,每次可以剪切一个连续的自然段,粘贴时按照顺序粘贴。注意剪切板只有一个,所以不能连续剪切。 要点: 看刘汝佳的,没什么想说的,自己用刘汝佳的思路实现了一遍。 主要是启发函数 以及 搜索与回溯。 IDA* #include<bits/stdc++.h> #define LL l...原创 2019-09-07 16:12:06 · 230 阅读 · 0 评论 -
UVa 1343 旋转游戏(The Rotation Game)
题目: 往八个方向旋转棋盘,要求中间的八个相同,求最小步数,以及如何移动。 分析: IDA* 启发函数 深度 + 不相同个数 > maxd 就退出。 #include<bits/stdc++.h> #define LL long long using namespace std; /* 00 01 02 03 04 05 06 07 08...原创 2019-09-10 00:08:37 · 285 阅读 · 0 评论 -
UVa 1374 快速幂计算(Power Calculus)
题目: 输入正整数,问最少需要几次乘除法可以从x得到x^n 每次x的次方只能从已有的x的次方中取,每次算出来的x的次方都进入已有的x的次方,一开始给一个x的一次方。问最小步数。 分析: IDA* 如果当前的 2 ^ (maxd - 当前深度) < n 就剪枝条。 #include<bits/stdc++.h> #define LL long long using namespac...原创 2019-09-10 00:19:42 · 564 阅读 · 0 评论 -
UVa 12558 埃及分数(Egyptian Fractions (HARD version) )
题目: 相比于埃及分数,多了一个某些数字不能出现的。 说困难,实际上只要判断一下某个数是否可以用而已。 #include<bits/stdc++.h> #define LL long long using namespace std; const int maxn = 1e3 + 10; unordered_set<LL> s; LL arr[maxn]; LL ans[...原创 2019-09-26 12:06:19 · 254 阅读 · 0 评论 -
UVa 12107 数字谜(Digit Puzzle)
注释写的很清楚了 加深迭代搜索 双重搜索 超级暴力。。 #include<bits/stdc++.h> #define LL long long using namespace std; string s[3]; char ch[] = "*0123456789"; int len[3]; bool cal() { // 核对 int num1, num2, num3; num...原创 2019-09-27 00:34:31 · 404 阅读 · 0 评论 -
UVa 11241 守卫棋盘(Guarding the chessborad)
代码: IDA* 搜索与回溯 #include<bits/stdc++.h> #define LL long long using namespace std; const int maxn = 11; int n, m; bool exi[maxn][maxn]; bool vis[4][maxn * 2]; bool occupy[maxn][maxn]; bool check(...原创 2019-09-28 22:14:55 · 229 阅读 · 0 评论
分享