随笔分类 - DFS
摘要:大白书第一章的例题,当时看起来很吃力,现如今A这道题的话怎么写都无所谓了。思路很简单,就是枚举胡哪张牌,然后枚举一下将牌,剩下如果能找到4个顺子或者刻子就胡了。由于粗心,34个字符串初始化写错,各种WA。 1 #include 2 #include 3 #include 4 #include ...
阅读全文
摘要:拖了好久的题解,想想还是补一下吧。A. King of Thieves直接枚举起点和5个点之间的间距,进行判断即可。 1 #include 2 using namespace std; 3 4 char s[110]; 5 6 int main() 7 { 8 //freopen("i...
阅读全文
摘要:发现自己搜索真的很弱,也许做题太少了吧。代码大部分是参考别人的,=_=||题意:给出一个phi(n),求最小的n分析:回顾一下欧拉函数的公式:,注意这里的Pi是互不相同的素数,所以后面搜索的时候要进行标记。先找出所有的素数p,满足(p - 1)整除题目中所给的phi(n)然后暴搜。。素数打表打到1e...
阅读全文
摘要:A. Fox And Snake代码可能有点挫,但能够快速A掉就够了。 1 #include 2 3 int main() 4 { 5 //freopen("in.txt", "r", stdin); 6 7 int n, m; 8 scanf("%d%d", &n, ...
阅读全文
摘要:回溯法确实不是很好理解掌握的,学习紫书的代码细细体会。 1 #include 2 3 char S[100]; 4 int n, L, cnt; 5 6 int dfs(int cur) 7 { 8 if(cnt++ == n) 9 {10 for(int i ...
阅读全文
摘要:本题就是灵活运用DFS来求连通块来求解的。题意:给出一幅黑白图像,每行相邻的四个点压缩成一个十六进制的字符。然后还有题中图示的6中古老的字符,按字母表顺序输出这些字符的标号。分析:首先图像是被压缩过的,所以我们要把它解码成一个01矩阵。而且我们还要在原图像的四周加一圈白边,这样图中的白色背景都连通起...
阅读全文
摘要:这是一道搜索的背包题目题意:有n件物品从中最多选m件,使其总重量不超过v,求能获得的最大重量有一个很重要的剪枝(是数据的问题还是这个剪枝本身很高效?):如果重量最大m件物品都不超过v,则答案就是该m件物品之和;或者最轻的物品的重量大于v则答案为0中间TLE了几次,又WA了几次,好辛苦啊,Orz 1 ...
阅读全文
摘要:这道题和HDU 1016的素数环那道题很相似。虽然1A了,但写代码的过程中还是丢三落四的。贴完代码闪人,嘿嘿 1 //#define LOCAL 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 i...
阅读全文
摘要:在刚刚写完代码的时候才发现我以前交过这道题,可是没有过。后来因为不理解代码,于是也就不了了之了。可说呢,那时的我哪知道什么DFS深搜的东西啊,而且对递归的理解也很肤浅。这道题应该算HDU 2610 Sequence one的简化版,判重也非常简单。其他也没有什么好说的了,直接上代码吧。 1 //#d...
阅读全文
摘要:搜索虐我千百遍,我待搜索。。。好吧,我还木有初恋题意:我开始理解题意就理解偏了,Orz题中有n个元素构成的序列,求出前p个非递减子序列。子序列是先按长度排序的,然后按原序列先后位置排序的。这里的非递减是指子序列中从左到右元素大小的值不减,对,就是这我理解错了。如果p>所有符合要求的子序列的个数,那么...
阅读全文
摘要:这题让我看解题报告都感觉弱无力的样子,囧rz题意:几根原本长度相同的木棒,然后被某人当出气筒剪啊剪啊,剪成好几段,然后,好吧,这时间一长记性就差了,忘了原来这堆木棒的长度。输出可能的最短长度如果说思路大概懂,但是代码看不懂,最好的办法就是在纸上模拟,或者把别人代码在计算机上一步一步跟踪调试。首先原长...
阅读全文
摘要:算法就是明白了感觉很简单,不理解就感觉那些代码是天书。第一次接触N皇后问题是在我们的C++教材上,感觉挺困难的。我们教材上给了八皇后的代码,尼玛,就是一个八重循环。好了,回到正题vis数组就是保存了三个方向是否会发生冲突,如果有冲突则不再搜索。因为我们是逐行搜索,所以不会出现一行上有两个皇后的问题。...
阅读全文
摘要:可重复路径搜索,不需要回溯这应该也属于很简单很经典的DFS题目和前面的小狗闯迷宫的题目(HDU 1010Tempter of the Bone)对比,只能走一条路的题目,是需要回溯的。原因很简单,寻路失败就需要把迷宫恢复成搜索前的状态吐槽一下我的失误,一看到矩阵我就以为第一个数代表行数,第二个数代表...
阅读全文
摘要:很简单很经典的DFS题目题意:'@'代表一块油田,在以它为中心的九宫格里的'@',也算同在一块油田,问所给矩阵中有多少块油田思路:遍历地图中的每一个格子,如果遇到'@',则DFS,将这块变为'*',然后八个方向继续DFS这样整个搜索完毕以后,这个map就全部变为'*'了第一次居然忘了做数组越界检测,...
阅读全文
摘要:第一次剪枝,只不过不是我自己剪的,学习别人的代码。我感觉ACM一开始就是学习学习在学习,等弄懂一定量的题目以后,才会慢慢有自己的思路,自己的风格。题意:有一个迷宫,给出一个起点和终点,问能否正好在第t步走到终点,每个方格只能走一遍。两次剪枝都在代码注释里面。这是搜索的第一篇,加油↖(^ω^)↗ 1 ...
阅读全文