摘要://hdu1879 还是畅通工程#include <iostream>#include <algorithm>#define MAX 5000using namespace std;int father[MAX];int my_rank[MAX];void make_set(){ for (int i = 0; i < MAX; i++) { my_rank[i]...
阅读全文
摘要:这题一开始做,什么优化都没做, 直接MLM+TLM, 后来用了康托展开+双向bfs过了,注意这题答案不唯一,开始与sample给的例子不同,以为自己错了,后来发现两个都对,果断交上去,结果AC掉了~
阅读全文
摘要:这题一般bfs都能过,尝试写了个双向bfs 单向bfs, 450+ms, 双向300+ms
阅读全文
摘要:典型的bfs, 第一个是自己写的没有做任何优化,需要8^8的空间保存状态后来看了别人解题报告,学会了康托展开,全排列压缩,只需要8!空间 #include #include #include #include using namespace std; struct my_status { int a[2][4]; string path; my_status(){} my_s...
阅读全文
摘要:bfs, 这题WA了好几次,百思不得其解,后来发现判断状态是否合法是想错了,误认为一定要在给定两个数范围内,其实只要是4位数就可以
阅读全文
摘要:本认为自己掌握了bfs,今天下午被这题卡了,以前做的迷宫都是单独一个人为状态的迷宫,队列保存的状态就是一个坐标,而这题就两个人,两个状态量,一开始我以一个人为状态量,WA好几次,后来发现自己之前对bfs有些误解, bfs的队列是保存每一次结果的状态,谨记谨记!!
阅读全文
摘要://三维迷宫 //标准的bfs #include #include #include using namespace std; struct coordinate { int x,y,z,step; }; int L,R,C; bool isvisited[31][31][31]; bool place[31][31][31]; coordinate goal; coordinate ...
阅读全文
摘要:今晚学了字典树,找来一题熟悉熟悉,直接套模板,一开始在Sicily过了,但在POJ 超时,囧,看了别人的解题报告,直接开个10000数组来储存节点,而不是插入时再new一个,就这样AC掉了
阅读全文
摘要:一开始卡时卡得厉害,后来优化了,还是TLM, 看了别人的解题报告, 发现自己写的check函数复杂了用了3个循环,其实两个循环就可以了,还学会了筛选法求素数
阅读全文
摘要:题意是队列中最大的优先权的元素出队,如果队首不是最大权限,就用放到队尾,题目要求的是给定的位置,计算出队的时间 用个数组保存最大的权限,再排序,每次检测队首元素是否与数组对应位置的权限相同,如果相同,出队,否则放到队尾
阅读全文
摘要:水题,把所有排列全列出来,找出最小的rank即可
阅读全文
摘要:这题本来很容易,由于自己看漏了个条件(大小写不敏感)WA了无数,还有用错了stl里的sort(参数传错了) 用stl里的sort排数组时, sort(begin, end, cmp),第二个参数要是数组最后元素的后一个的指针,当一个数组a有n个元素时,end= a+n(&a[n]),而不是&a[n-1]
阅读全文
摘要:这题做得相当纠结,一开始理解错holes, 认为holes是一个格子它的上下左右前后都有一个 foodcubes,WA了无数次下,看了别人的解题报告才知道自己理解错题意,后来改了后,继续WA,不解,解法和别人的基本相同,后来发现那个边界条件错了,这题就是悲剧 用bfs,每次从一个空白点开始搜索,搜索所有与它相连续的空白,直到遇到foodcube和到达边界, 注意!!这里bfs的边界条件要比1小且...
阅读全文
摘要:学会了并查集,kruskal算法就没有大问题了先对边的权值排序, 再不断添加边(要保证不形成回路,用并查集),直到添加的边数为n-1时停止这题WA几次,检查几次算法发现无问题,最后发现数组开少了,囧~#include<iostream>#include <algorithm>#define MAX 105using namespace std;struct Edge{ int v; int w; int lenth;};int parent[MAX];int find(int );void Union(int , int);bool cmp( Edge a, Edge
阅读全文
摘要:今天狠下心,把并查集学了,方便以后写最短路径算法,结合网上和书本上的方法,总算搞明白大概模板和思路先找了几题练练,都是套模板,但这题卡住了,一直找不到原因,后来看了别人解题报告,才明白忽略了一个问题题意是:给你一幅图,判断它是否存在回路要注意:要考虑图拆分为几颗树时,也是不符合的。一开始没考虑到这个问题#include <iostream>#define MAX 100005using namespace std;int parent[MAX];void Union2(int, int);int find2(int);int main(){ int n, m; int a,b; i
阅读全文
摘要:这题比之前做的搜索题水很多,根本不用标记,因为每次走不同的地方,都不会返回,蚂蚁只能向上或友行 这里转换了一下,题目是从左下角到右上角,我求的是左上角到右下角,结果是一样地~
阅读全文
摘要:数据结构学了堆栈,找了些题做做,都是水题,对栈的应用 3704
阅读全文
摘要:这题做得相当曲折,一开始以为是和8皇后差不多,于是按8皇后解法做,后来发现自己列出所有的路线,错了 修改后,发现超时了,后来改了好几次都超时了, 看了大牛的解题报告,才知道要剪枝 先搜索扩展点最小的点, 因为它的扩展点小,就意味着从其它点到达它的路径很少,先搜索它会提高效率 这是我个人的理解 1152和1153都差不多,只不过1153数据规模比1152数据规模大 1152
阅读全文
摘要:水题,看明白题目就可以了。 题意是,控制一个机器人行动,s,r,l为控制机器人操作 给一个函数,先按它给的定义计算出该函数,然后解析该字符串
阅读全文