随笔分类 -  ACM

上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 36 下一页
大二到大三不堪回首的记忆....
摘要:原题链接 考察:最短路+拓扑排序 完全不会,fw本f 错误思路: 一看题,这不spfa裸题吗,结果代码上去TLE. 正确思路: 有负权边求最短路,又卡SPFA.不考虑SPFA优化的话,似乎是没有办法了.但这道题特地说明了两种边的特性,所以可以从边入手. 已知双向边无负权边,如果不考虑单向边可以考虑用 阅读全文
posted @ 2021-04-28 01:41 acmloser 阅读(61) 评论(0) 推荐(0)
摘要:原题链接 考察:最短路(双端队列)+二分 想到了二分,结果我是用dfs+二分,跑了6个数据TLE. 思路: 由题可知,题目是要求最大的第k+1条路径.我们除去k条路径后,就是求剩下的最大值最小.这很容易想到二分.关键是check函数怎么写.本蒟蒻的思路是dfs(当前点,二分值,k). 如果当前路径> 阅读全文
posted @ 2021-04-27 19:57 acmloser 阅读(47) 评论(0) 推荐(0)
摘要:原题链接 考察:最短路+dfs 本题的正解思路想到了...但是感觉不可能放弃了....以后要戒掉感觉不可能的这个词 思路: 由于五个点都要到达.当我们从起点到达其中一个点后,剩下的就是求点与点之间的最短距离.这里直接预处理点与点之间的最短距离.再枚举到达点的顺序.不必担心到达某个点的途中去过了另一个 阅读全文
posted @ 2021-04-27 14:46 acmloser 阅读(57) 评论(0) 推荐(0)
摘要:原题链接 考察:最短路+思维 洛谷普及题,本蒟蒻没想出来,我是fw. 思路: 在同一路线上的车站,只要是在当前点后面就可以不耗费到达.由此可以想到一个建图思路:在一条路上的,只要是在当前点后面的,就建立一条权值为w的有向边.很容易想到设w =0.但是这样不同路线就较难处理.由此设w = 1,答案是在 阅读全文
posted @ 2021-04-27 01:56 acmloser 阅读(82) 评论(0) 推荐(0)
摘要:原题链接 考察:搜索 思路: ​ 参考lrj老师的总结.当问题可以用回溯解决但明显搜索树很深时,可以考虑用迭代加深优化. ​ 分母最小能到1e7,很明显bfs一层就有MLE的风险.考虑dfs.很明显dfs的参数需要当前分子,当前分母,目前深度,枚举开始数.这里没必要等差为1递增枚举然后判断大小,直接 阅读全文
posted @ 2021-04-26 08:52 acmloser 阅读(50) 评论(0) 推荐(0)
摘要:原题链接 考察:搜索 思路: 这道题题目描述略坑,这里简述下题意: 1.所有路线上的公交车形成等差数列,而且等差数列的最后一项再+d>60. 2.存在两个完全一样的路线. 3.求路线最少值. 由于题目提示信息:ans<=17.可以发现搜索树很深,但是答案在很浅的位置.所以可以用迭代加深搜索.此外这道 阅读全文
posted @ 2021-04-25 21:22 acmloser 阅读(75) 评论(0) 推荐(0)
摘要:原题链接 考察:IDA*+离散化 这估价函数本蒟蒻完全没想到.... 思路: 最少操作次数,如果用bfs需要存储数组.考虑一波IDA*,无需存储数组只需要回溯.但是估价函数不好想.参考了大佬的题解,原来需要离散化....将不同的半径按大小映射为1~n之间的数字.目标就是让最终序列为1...n递增排序 阅读全文
posted @ 2021-04-25 01:48 acmloser 阅读(94) 评论(0) 推荐(0)
摘要:原题链接 考察:bfs 思路: 存下所有草药的坐标,对于每一个草药求贝茜和骑士到达它的时间,每个时间遍历求最小值. 1 #include <iostream> 2 #include <cstring> 3 #include <queue> 4 using namespace std; 5 const 阅读全文
posted @ 2021-04-24 17:00 acmloser 阅读(119) 评论(0) 推荐(1)
摘要:原题链接 折半搜索:一个我做一道相关题能T10次的算法 参考了大佬的题解,本蒟蒻没想出来怎么去重(搜索也没想到...绕在只放第x组的死循环里),但是大佬的题解也是T了第5点,开了O2才过... 思路: 首先明确重复的方法与所取砝码的质量无关,只与取的分别是谁有关.也就是说 测试数据 4 3 3 3 阅读全文
posted @ 2021-04-24 16:16 acmloser 阅读(78) 评论(0) 推荐(0)
摘要:原题链接 考察:双向dfs 思路: 爆搜的时间复杂度是O(240).明显TLE.背包的时间复杂度是O(m*n) 也会TLE.所以需要优化. 这里的优化考虑折半搜索.也就只搜索一半.在搜索另一半的时候进行答案累加.这里先预处理在0~n/2的比赛里选的方案.然后在搜另一半的时候二分找到最大的与当前花费和 阅读全文
posted @ 2021-04-24 12:13 acmloser 阅读(68) 评论(0) 推荐(0)
摘要:原题链接 考察:搜索 思路: 简单的bfs广搜即可.但是注意存在上一层是传送机下一层还是传送机的死循环点. 1 #include <iostream> 2 #include <cstring> 3 #include <queue> 4 using namespace std; 5 const int 阅读全文
posted @ 2021-04-23 17:09 acmloser 阅读(45) 评论(0) 推荐(0)
摘要:原题链接 考察:bfs 思路: 考虑过IDA*,但是搜索层数不一定很浅.然后就是A*,想法是所有不在位置上的数的个数(空白部分不计).但是做之前为了搞懂题意看了讨论区,结果暴雷...看到题解大字标题bfs+hash.....我错了,以后还是自己搞懂题意555 普通的bfs就可以过.可以将数组定义为结 阅读全文
posted @ 2021-04-23 13:34 acmloser 阅读(54) 评论(0) 推荐(0)
摘要:原题链接 考察:bfs 第一思路: 预处理鬼到达每个点的最短时间,再对男孩与女孩分别bfs...体感没错,不知道会不会MLE,但本蒟蒻连样例都没过.... 省事思路: 压根不用对鬼bfs.如果鬼能在k秒后达到某点,说明鬼的起点与终点的曼哈顿距离<=2*k.本蒟蒻完全没想到.... 接下来是对男女分别 阅读全文
posted @ 2021-04-22 21:33 acmloser 阅读(57) 评论(0) 推荐(0)
摘要:原题链接 考察:IDA* 完全没想到啊....但通过这道题感觉dfs本质就是枚举吧...所以这道题dfs需要一直枚举AGCT,直到所有位置都匹配. 思路: 但是光枚举肯定会TLE的,所以需要剪枝.总共只有8个字符串,每个只有5个字符.最多(不可能达到)要40个字符.所以可以考虑迭代加深.我们在匹配时 阅读全文
posted @ 2021-04-22 16:46 acmloser 阅读(84) 评论(0) 推荐(0)
摘要:原题链接 考察:搜索 思路: 预处理有子弹和城堡的坐标,这部分除了暴力没有更好的办法.因为还有一个时间限制,所以需要三维数组.剩下就是BFS. 剪枝: 1.相同时间的拜访点不必再访问. 2.当离终点的曼哈顿距离>能量 不必再走下去. 注意:城堡处一定要预处理再判断子弹. 1 #include <io 阅读全文
posted @ 2021-04-22 08:40 acmloser 阅读(42) 评论(0) 推荐(0)
摘要:原题链接 考察:搜索 思路: bfs或dfs.dfs代码短一点.bfs可以用二进制标记去过的城市.不必用数组,同理dfs.听说本题数据水,可能本蒟蒻的代码有点问题. 1 #include <iostream> 2 #include <cstring> 3 #include <vector> 4 us 阅读全文
posted @ 2021-04-21 23:27 acmloser 阅读(51) 评论(0) 推荐(0)
摘要:原题链接 考察:思维,前缀和 md 我是sb5555想了半天同余 思路: 当[l,r]区间和为0,说明sum[r]-sum[l-1]==0,也就是sum[r] == sum[l-1].对每个位置求前缀和.找出现次数最多的前缀和. 1 #include <iostream> 2 #include <c 阅读全文
posted @ 2021-04-21 21:17 acmloser 阅读(64) 评论(0) 推荐(0)
摘要:原题链接 考察:思维 看半天没看出来,还以为和求最短交换次数差不多...实际完全不一样.菜狗不配... 思路: 如果我们再交换a1和a4就可以化为更小的环.每步交换都是两个权值之和.因此假设a1是环中最小的,就由贪心得交换的最小权值和是4*w1+w2+w3+w4+w5 但是如果这样贪心交上去依然WA 阅读全文
posted @ 2021-04-21 21:02 acmloser 阅读(95) 评论(0) 推荐(0)
摘要:原题链接 考察:搜索 有大佬用的是单向搜索打表.不明觉厉...本蒟蒻是用的是双向bfs,参考了大佬的题解 原思路: 正反向搜索.按正向字典序顺序枚举操作,结果WA了n次....错误原因是正向字典序在正反重合时不一定保证完整的字符串是字典序最小的.如果是反向搜的时候重合的,就可能存在非最小的解. 正确 阅读全文
posted @ 2021-04-21 12:29 acmloser 阅读(81) 评论(0) 推荐(0)
摘要:原题链接 考察:反向bfs+打表 思路: 可以以终态为起点求能到达的所有状态,并记录路径.这里可以不用unordered_map的记录状态,而是用康拓展开.(详细解释 GO) 注意康拓展开和反康拓展开是返回前面有几个全排列. 不多解释,这篇题解已经很详细了GO 1 #include <unorder 阅读全文
posted @ 2021-04-20 23:42 acmloser 阅读(50) 评论(0) 推荐(0)

上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 36 下一页