- 博客(5)
- 收藏
- 关注
原创 洛谷 P1019 单词接龙(dfs,字符串,贪心
洛谷 P1019 单词接龙(dfs,字符串洛谷 P1019 单词接龙数据范围20,可以为所欲为之为所欲为嘿嘿嘿大体思路:用dfs,在所有的单词中选取任意个单词,使得接龙后的新单词最长。预处理:也是最重要的部分)找到任意两个单词中最小的共同字符数目)string x,y;例如:x在前,y在后)从x的最后一个字符开始,往前一个一个摞)第一层)如果该字符与y字符首字符一样,开始第二层循环))如果失配,出循环(第二层)如果一样,该字符(指x)和另一个字符(指y)各自后移))如果该字符到
2020-08-09 16:51:29 156
原创 洛谷 P1433 吃奶酪(dfs,状压dp
洛谷 P1433 吃奶酪(dfs,状压dp洛谷 P1433 吃奶酪用状压dp的思想来优化dfs…思路:观察数据,15个奶酪!这数据并不大,根据题意,老鼠走的路径是无后效性的,只要经过的点一致,所在的点也一致,接下来所要走的路径就是等价的所以可以用一个二进制数来记录走过的点,另一个数记录老鼠所在的点,如果之后搜到的答案比这个点要大,就不继续搜即可如果不减枝硬搜的话会T!完整代码:#include <iostream>#include <algorithm>#incl
2020-08-07 15:36:55 348
原创 洛谷 P2895 [USACO08FEB]Meteor Shower S(bfs
洛谷 P2895 [USACO08FEB]Meteor Shower S(bfs洛谷 P2895介绍坑点:1.坐标不能低于0,但可以超300!2.流星定时砸下;3.流星砸下时间已最早的那个为准!4.如果出不去还要输出-1!首先,是一道明显的bfs题,要求最短时间,所以用队列记录;用结构体记录:坐标x,y砸下的最早时间搜索时经过该点的时间flag记录是否搜过终止条件:如果搜到一个点永远不会被陨石砸到,输出该点时间,或者直到搜索结束也没有出去,输出-1typedef stru
2020-08-04 13:40:18 200
原创 洛谷 P1443 马的遍历(dfs,bfs,设阈值,减枝
洛谷 P1443 马的遍历(dfs,bfs,设阈值,减枝洛谷 P1443 马的遍历我们都知道dfs是一条路搜到黑,所以不可以保证最开始搜到的就是最近点。也就是说,我们在遍历的过程中,结果是在不断更新的。那么就是说我们把马所有可能走的路径全都搜索了一遍,有很多搜索都是累赘的。dfs的优化:如果一个点已经搜过,且之前的值比新值小,则结束。然后不出意料地TLE了~~再次优化,设置阈值,步数如果超过200就结束。DFS全代码奉上:#include <iostream>#include
2020-08-02 13:21:40 610
原创 洛谷 P2392 kkksc03考前临时抱佛脚(dfs,排序优化
洛谷 P2392 kkksc03考前临时抱佛脚(dfs,排序优化洛谷 P2392 kkksc03考前临时抱佛脚这题dalao用dp,本蒟蒻只会搜索/哭对于每一科,只要找到任意个习题册,使其所耗费的时间大于等于总时间的一半,这些任意个习题册所花费的最小时间就是该科的最小时间。也就是在m个习题册中搜n个习题册~写一个很简单的dfsvoid dfs(int s,int n,int m){//s为和,n为当前位置,m为总位置 if(n==m) return;//到了最后一个 if(fl
2020-08-01 11:51:18 551
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人