搜索
文章平均质量分 73
gg_gogoing
这个作者很懒,什么都没留下…
展开
-
Prime Ring Problem(深搜入门)
题目大体意思:就是给定一个n,有1........n这n个数,组成一个环,保证相邻两个数的和是素数求所有满足条件的序列原创 2014-07-18 09:26:53 · 635 阅读 · 0 评论 -
Trees Made to Order
二叉树与卡特兰数结合的一个题目。这道题目英文关得过原创 2014-07-05 10:25:54 · 640 阅读 · 0 评论 -
Ultra-QuickSort 学习归并排序(树状数组+离散化)
以前学习归并排序,只是很简单的知道其思想,约莫老万的就是开辟原创 2014-07-07 09:42:48 · 600 阅读 · 0 评论 -
2013 长沙现场赛 K (Pocket Cube)
题意:给出一个2X2X2的魔方,再给一个限定的步骤长度,不超过该长度最多能能使几个面拼成功。纯粹模拟题,搞清楚几个面的变换关系,并化简步骤,三种旋转方式,两种旋转方向。bfs,dfs都可以。#include #include #define maxn 300000int twist[3][3][4]={ {{1,7,17,21}, {3,13,19,23}, {9,8,1原创 2014-09-07 09:22:34 · 661 阅读 · 0 评论 -
N皇后问题(首回溯)
今天学习了回溯法,其基本思想原创 2014-06-25 16:11:19 · 648 阅读 · 0 评论 -
Palinwords (繁琐)
这道题目给的例子很好,能过例子就能AC,但确实挺麻烦的。原创 2014-07-22 09:15:18 · 490 阅读 · 0 评论 -
HDU 1007 最近点对
分治法求最近点对递归将点不断分成小组,计算最短距离。此时的最短距离仅仅是两点都属两块的某一块(这里的分割点是mid点)。还需要考虑两点分属两块的情况。这时对于选点则把范围缩小到了以mid为中心。再将距离mid点x轴2*mindist范围点考虑在内。在这些点中,再取mid点,留下那些y的距离不大于middist 的点进行距离计算。PS:刚开始min函数写错了,写成了max,一原创 2014-09-30 10:53:30 · 924 阅读 · 0 评论 -
零星递归收纳
1. 汉诺塔 及逆序输出2. 全排列 每次选取后面的一位与自己交换,自己也传递下去 c(n,m)=c(n-1,m-1)+c(n-1,m) 任意选择n中的某个备选元素为特殊元素,从n中选m个元素可以由此特殊元素的分成两类情况,即m个被选择元素包含了特殊元素和m个 被选择 元素不包含该特殊元素3. 分苹果 将m个放入n-1个中,m-n放入n个中(原创 2014-06-25 16:24:53 · 574 阅读 · 0 评论 -
acm,基本图论算法及其解释
图论基本算法其实就6个,两个生成树,4个最短路径。 之前提到过的BFS算法,优点在于不用显式构建整个图,每次找到相邻即可,发现要到达的或者访问完毕即可退出。一般用于只求最短路。技巧:设置数组,记录每个点的前驱点。但是对于DFS来说需要显式构建整个图,因为回退的时候还会到之前的点,或者通过另一种方式到达。用于求可行路径总数。技巧:强大的剪枝........----------原创 2014-06-29 16:09:36 · 4082 阅读 · 0 评论 -
Dancing Links 学习 AND 代码详解
今天花时间学习了下Dancing Links,其核心思想是降低在搜索中的范围,减少复杂。降低的方法就是将用链式结构构造的图中不需要的点去掉。如果回溯再恢复。这个方法依赖的数据结构是用数组存储的十字链表L[NN],R[NN],U[NN],D[NN] 左右上下的链接构造数据结构:head,cnt,L[NN],R[NN],U[NN],D[NN],H[NN],COL[NN],S[NN]原创 2014-10-13 07:18:51 · 929 阅读 · 0 评论 -
Dancing links
Dancing links是一种能高效实现Knuth的X算法的技术,它可以使很多搜索问题得到极大的优化。假设x是一个双向链表中的一个节点,L[x]表示X的前驱,R[x]表示x的后继,则R[L[x]] = R[x], L[R[x]] = L[x]这一操作可以把x从链表中移除,这是众所周知的,当然,一个细致的程序员还会用 L[x] = R[x] = x或 L[x] = R[x] = NUL转载 2014-08-17 10:43:42 · 570 阅读 · 0 评论 -
HDU 5025 Saving Tang Monk(状压搜索)
钥匙是必须有序,蛇是不要求有序的。所以一个需要状压一个不用因为时间计算和步数计算不同。所以要遍历整个空间,或者使用优先队列。优先时间短的。风格就这样了.#include #include #include #include #include #define inf 0x3f3f3f3f#define maxn 110using namespace std;int N,M原创 2014-12-03 21:03:58 · 590 阅读 · 0 评论 -
搜索第一篇(迷宫)
最基本的迷宫问题使用BFS原创 2014-06-27 21:38:31 · 723 阅读 · 0 评论 -
POJ 1753 Flip Game
标准的广搜题目。大致题意,一个4X4的矩形中有黑白棋子。点一下会使自己变成另一种颜色,与其相邻的也会发生同样的变化。问:最少经过多少次可以使盘面上的颜色达到一致?/************************************************************************//*0.是否达到要求1.是否在盘中2.判重3.符合要求4.原创 2014-08-16 10:15:48 · 680 阅读 · 0 评论 -
POJ 2676 Sudoku
这道题目原来我理解错了,以为要使得行列出现的数字完全不同调试花了我一早上的时间,擦擦擦其实只要小方格内的不同就够了这里注意一个小技巧:vis1[i][ans[i][j]]=1; vis2[ans[i][j]][j]=1;使得行列取不同的数字用于判重#include#includeint map[10][10],ar[80][2],used1[10][10原创 2014-08-16 14:08:27 · 714 阅读 · 0 评论 -
借助八数码问题,双向广搜,康托展开,逆序数奇偶性
1.首先判断是否有解核心思想是根据一维状态的逆序数奇偶性来判断将它表征为一维状态(0 1 2 3 4 5 6 7 8),它的逆序数为0,偶数。考虑数字的移动,左移or右移均不改变其一维状态,因此逆序数的奇偶性不变。上移or下移时,一维状态中某一位的数字往前或者往后跳了两格(+/-2),相应的,逆序数+/-2,依然不改变奇偶性。因此有结论:八数码问题有解 iff 初始状态与终止状态的逆序原创 2014-07-31 22:43:29 · 1824 阅读 · 0 评论 -
八数码的八境界
研究经典问题,空说不好,我们拿出一个实际的题目来演绎。八数码问题在北大在线测评系统中有一个对应的题,题目描述如下:EightTime Limit: 1000MS Memory Limit: 65536K Special JudgeDescription The 15-puzzle has been around转载 2014-07-31 22:53:37 · 888 阅读 · 0 评论 -
HDU 1010 奇偶剪枝,scanf,getchar,gets,cin的区别
借此机会学习下gets,getchar,scanf 这几个函数在接收时的不同1.只有gets会把换行符接收,转化为字符串末尾的'\0',其他的不接收,将'\n'留在缓冲区中,所以之后的读取都会度'\n'2.scanf当读到空格,TAB就会结束,下次会从其后开始3.一般用scanf接收数据后,再用getchar把换行符去掉cin的输入忽略空格和回车所以以后的输入要求判原创 2014-10-11 16:59:42 · 659 阅读 · 0 评论 -
搜索小结
一般来说,广搜常用于找单一的最短路线,或者是规模小的路径搜索,它的特点是"搜到就是最优解", 而深搜用于找多个解或者是"步数已知(好比3步就必需达到前提)"的标题,它的空间效率高,然则找到的不必定是最优解,必需记实并完成全数搜索,故一般情况下,深搜需要很是高效的剪枝(优化).像搜索最短路径这些的很显著若是用广搜,因为广搜的特征就是一层一层往下搜的,保证当前搜到的都是最优解,当然,最短路径只原创 2014-08-15 15:24:32 · 582 阅读 · 0 评论 -
2014 ACM/ICPC Asia Regional Beijing Online HDU 5040 Instrusive 优先队列
WA到死的一道题目。一个人从起点走到目标点。这个过程中有摄像头,摄像头的照射范围为两个单位长度,包括摄像头自己的位置。为了避免被照射到,可以有两种选择。在一个位置等待1S,或者坐在盒子里过去(花费3S),走一步花费1S。摄像头每秒顺时针转一次。1.4S有一个循环,所以每个位置vis[r][c][sec] 四种情况的最优解2.不用显示构图, 每个摄像头都记录一下四种情况3原创 2014-09-22 09:43:13 · 897 阅读 · 0 评论 -
POJ 1948 (Triangular Pastures)二维背包 DP/DFS
题意:有N个木棒,全部使用使得原创 2014-11-06 21:50:18 · 569 阅读 · 0 评论 -
poj 2709 Painter 坑爹贪心
#include#include#include#include#includeusing namespace std;#define maxn 256int N,G;int a[20];int min(int a,int b){ return a<b?a:b;}int main(){ int i,j,k,ans; int tmp; while(scanf原创 2016-11-17 16:50:23 · 334 阅读 · 0 评论