摘要: 题意:还是倒水问题:给出三个瓶子容积为 A,B,C :A =B+C;然后问倒几次才能够使其中两个瓶子中水相同且平分已有的水。一开始A瓶被装满水 思路:像装水这种操作的问题就是模拟,而dfs能够解决最少操作问题(通过记录操作数) 完整代码: 阅读全文
posted @ 2019-07-29 13:09 Tianwell 阅读(119) 评论(0) 推荐(0)
摘要: 题意:给一个图,求连通块的个数。(题中是一某点周围8个点均为连通区域) 思路: 这道题就是一道很基础的搜索染色(计数),我一开始用的bfs但是一直MLE,所以就使用消耗空间更少的dfs 完整代码: 阅读全文
posted @ 2019-07-29 11:41 Tianwell 阅读(99) 评论(0) 推荐(0)
摘要: 题意:给你两个瓶子,容量为a,b, 然后给你3种操作:(1) FILL()//装满瓶1或者瓶2 (2) DROP() //倒完瓶1或瓶2中的水 (3)POUR(i,j) //将i瓶中的水倒到j瓶中,倒满可以有剩余 思路: bfs,相对于递归的写法我还是更喜欢用队列来写。还是按照bfs的标准,递归边界 阅读全文
posted @ 2019-07-28 20:58 Tianwell 阅读(151) 评论(0) 推荐(0)
摘要: 题意:将两个字符串模拟洗牌的操作合并问是否能得打答案,以及中间经过的次数,如果不能则输出-1 思路:这是一道模拟题,所以只需要写一个模拟操作,不断循环即可。同时还要判断循环结束条件(递归结束条件),如果自己手写一个例子的话就会发现其在不超过2*n(n为长度)次数就会洗回来 完整代码: 阅读全文
posted @ 2019-07-28 15:11 Tianwell 阅读(182) 评论(0) 推荐(0)
摘要: 题意:给你一个四位数(1000~10000),每次改变使他变为一个素数,问要改变几次才能到所给出的另一个素数值,同时要保证改变次数最小 思路: 先素数打表,然后再bfs搜索(这样便于求出最小次数) 。 bfs搜索可以将当前数字进行改变然后求所得,还有一种办法 看到题解有种比较暴力的匹配(从1000~ 阅读全文
posted @ 2019-07-27 16:26 Tianwell 阅读(159) 评论(0) 推荐(0)
摘要: 题意:题意给你mxn的01矩阵可以进行翻动某个坐标,但同时会翻动其周围(上下左右的位置),问如何最少次翻动将所有翻转到0 ,并打印出翻转的图像思路:我们可以用dfs来暴力搜索,当然也可以使用状压dp。刚好我也在做状压dp的专题所以参考了别人怎么用状压去写,然而总感觉他们写的是模拟...并且有点注释也 阅读全文
posted @ 2019-07-27 10:33 Tianwell 阅读(165) 评论(0) 推荐(0)
摘要: 题意:给定一个字符串,循环移动找到最小(大)字典序下标,以及该串的循环节个数。 思路:循环移动匹配字典序最大,或者循环截取 (TLE). 最后还是投降去看了别人的题解... 然后就是一道 字符串中循环的最小(大)的表示法 题。然后关于循环节个数当然就用next数组来求 完整代码: 阅读全文
posted @ 2019-07-26 17:41 Tianwell 阅读(219) 评论(0) 推荐(0)
摘要: 题意:和 POJ-3080 Blue Jeans 基本上一样:求n个串的公共子串,只是数据增大了(字符串长度) 完整代码: 阅读全文
posted @ 2019-07-26 15:58 Tianwell 阅读(171) 评论(0) 推荐(0)
摘要: 题意:求出所有串(或者其逆置串)的最长公共子串 思路:不由的想到了 POJ-3080 Blue Jeans 这道题, 其题意是找到所有串的最长公共子串。也是暴力截取(取其中一个串)然后循环匹配(匹配时用kmp取优化) 这里多了一个(匹配其逆置,即将所有的串均逆置存入string数组中来循环匹配即可) 阅读全文
posted @ 2019-07-26 14:43 Tianwell 阅读(196) 评论(0) 推荐(0)
摘要: 1.求出T(模板串)对S(原串)的最小完全匹配位置 HDU-1711 Number Sequence (普通kmp) 2.求T(模板串)在S(原串)中出现的次数(可以重复匹配) POJ-3461 Oulipo (kmp修改) 3.求T(模板串)在S(原串)出现的次数(不可重复匹配)HDU-2087 阅读全文
posted @ 2019-07-26 11:49 Tianwell 阅读(220) 评论(0) 推荐(0)