题意:初始状态为左边空一行,数字在右边28个格子。末态要按一副卡片在一行顺序牌,即第一行为11-17,第二行21-27,。。。。,可以通过四个空格来转移卡片,问从初始状态到末态最少要多少步。
分析:
1、每次操作只能把一个数字放到某个空格,不能交换两个数字的位置。
2、用的是再哈希法hash =(v+10)%M来处理冲突。
3、空格的左边为空或者数字的末尾为7则不能填充。
4、填充空...
分类:
其他好文 时间:
2015-06-07 09:45:12
阅读次数:
263
由于数字达到了2亿,所以用不了筛选,我用的是bfs+map判重
至于输出格式.......看代码吧~
#include
#include
#include
#include
#include
#include
#define maxn 2000000000+5
#define ll long long
using namespace std;
int f[6000];
priority_que...
分类:
其他好文 时间:
2015-06-06 15:00:55
阅读次数:
138
LeetCode Contains Duplicate题目思路刚开始还以为是什么异或判重;
后来发现是自己想错了- -;
还是哈希好点。代码bool containsDuplicate(int* nums, int numsSize) {
if (numsSize <= 1) return false;
int length = 100007;
if (numsSize...
分类:
其他好文 时间:
2015-05-26 09:15:33
阅读次数:
113
类似于八数码的一道经典搜索题,思路基本也一样.我是用康拓展开进行的判重.代码如下:/*
ID: 15674811
LANG: C++
TASK: msquare
*/#include
#include
#include
#include
#include
using namespace std;#define...
分类:
其他好文 时间:
2015-05-19 10:37:24
阅读次数:
156
假设选择了字符串a和b:假设两人都按照最聪明的策略,那么观察一下可以找出规律:当a和b的字符串长度之和为奇数的时候zcc会败。另外当a==b的时候zcc也会败(当时做的时候忘了这个了T^T)接下来程序就好写了。总方案数是C(N,2)=N*(N-1)判重要用map。最后别忘了化简分数。 1 #incl...
分类:
其他好文 时间:
2015-05-18 14:18:02
阅读次数:
109
康拓展开?双向Bfs?
no,no,no,简单单向bfs+map判重就好,不过预处理的思想是不变的。
不过我看了许多博客,也没人解释为何12345678可以达到其他所有的状态
#include
#include
#include
using namespace std;
string st,ed;
mapmapp;
map::iterator it;
struct stu
{
s...
分类:
其他好文 时间:
2015-05-18 09:05:27
阅读次数:
127
也是区间更新,但这道题数据范围太大,要离散化
离散化即把涉及到的数字都记录下来,重新排过序后再用记录下来的下标作为其值,当使用其值进行比较时就可以根据下标找到对应的值
这里用了set判重,set是用insert插入的,而queue和stack都是用push插入值
#include
#include
#include
using namespace std;
#define N 10005
s...
分类:
其他好文 时间:
2015-05-15 19:58:59
阅读次数:
149
题目链接:http://poj.org/problem?id=1077思路分析:题目要求在找出最短的移动路径,使得从给定的状态到达最终状态。搜索算法选择:由于需要找出最短的移动路径,所以选择bfs搜索判重方法:将空格视为数字9,则可以将状态的集合视为1-9的排列组合的集合,根据康托展开,将每一个状态...
分类:
其他好文 时间:
2015-05-07 00:44:09
阅读次数:
233
题目链接:点我第一次不太清楚怎么判重,现在懂了,等下次再做 1 /* 2 *HDU 4531 3 *BFS 4 *注意判重 5 */ 6 7 8 #include 9 #include 10 #include 11 #include 12 #include 13 #i...
分类:
其他好文 时间:
2015-05-02 16:28:31
阅读次数:
177
给一个字符串包含大小写字符,规定'A'
用裸的dfs+map判重 写了一遍超时了,那种机智的dfs方法没有怎么看懂。。
最开始用的set+next_permutation,太年轻,也超时了。。。
运用一个next_permutation()函数即可,头文件
注意要先将字符串sort一遍,然后next_permutation()也要把比较函数cmp传进去,原来都不知道可以三个参数的。。
...
分类:
其他好文 时间:
2015-04-29 21:42:06
阅读次数:
123