摘要:
原题链接 考察:最短路+建图 本题最难在建图 根据题意,我们需要在在相邻层(必须都有点存在),额外边之间建边.题目给的N在10^5左右.如果题目给的N只分布在两层,那么暴力建相邻层的边,需要两层for循环判断的时间复杂度在O(n^2).必定TLE. 根据这道题,相邻层的点可以走相邻层的固定路长,也可 阅读全文
摘要:
原题链接 考察:并查集+邻接表+逆向思维 kuangbin题单有这道题,但那道题本蒟蒻只看了思路,没有实现,今天做了一下才发现没有那么简单..... 错误思路: 离线处理,将所有的要连的边先存储,标记要摧毁的点,将还未摧毁的点先连接.再将存储的摧毁的点从尾到头遍历,边涉及本次修复的点的就连接, 结果 阅读全文
摘要:
原题链接 考察:最短路+枚举 错误思路: 枚举所有点作为起点,看所能更新到1点的最短路.返回的dist[1]即为答案. 此思路错在等级处理.如果以pos[1]-m<=k<=pos[1]+m,那么交易途中的最高点和最低点就无法更新.如果在交易途中更新最高点和最低点,那么走错路的时候就不能回溯 参考了大 阅读全文
摘要:
原题链接 记录一下不管做几次都不会写的题 考察:STL+hash 第一次做完全是地铁老人看手机,第二次做基本默写lnj的代码还只能想起思路,本蒟蒻属实fw 正确思路: 因为要输出栈顶集合的size,所以不能拿两个int做键和值.需要将set映射为int,而对应int我们也要能获得相应的集合.这里用到 阅读全文
摘要:
原题链接 考察:最短路 错误思路: 拓扑排序两次正反建图,当队列只有一个元素说明可以排名. 此思路错在当所有牛都可以排序时,会重复计数.或者图呈8字形,即中间牛可确定排名,两边牛不可,还会计算错误 正确思路: 如果一头牛可以确定排名,那么他前面的人数和后面的人数都是确定的.即入度+出度==n-1 用 阅读全文
摘要:
原题链接 考察:spfa或者BF 本题边有多个属性值,所以需要多开几个数组 正确思路: 因为图是成环形的,最终会回到原点,如果值变小了最后队列会为empty,如果值变大了,队列会在i==s时,跳出循环 本题最好重新做过一遍 1 #include <iostream> 2 #include <cstd 阅读全文
摘要:
原题链接 考察:最短路 错误思路: floyd,肉眼可见的超时(但是有用floyd过的,tql) 正确思路: spfa+两次建图 正向建一次反向建一次,这样就是单源最短路 1 #include <iostream> 2 #include <queue> 3 #include <cstring> 4 阅读全文
摘要:
原题链接 考察:最小生成树或最短路 这类题型感觉终于搞懂了一点...蒟蒻落泪 这里还有道和本题差不多的题GO 思路: 我们要让最小边权最大,也就是我们尽量走权大的边.spfa更新dist数组时,要赋值大值.但同时我们也需要让这条路径边权最小,也就是这条语句: dist[i]<min(g[t][i], 阅读全文
摘要:
原题链接 考察:构造+组合数学 错误思路: 暴力枚举1 33 的个数,通过一些剪枝操作得到各自的长度,我们暴力枚举个数,通过它们组合数==n来求解字符串. 但是注意: 但是注意求解组合数==n.如果n为>1e5的质数(拆成3个因子只有1*N*1一组情况).那么甚至得不到解.但题目要求是一定有解的.因 阅读全文
摘要:
原题链接 真是绝了,做过差不多的判重思路的题下次判重还是想不起来,我果然fw 考察:dfs+图 思路: 利用二维数组判重,在for循环外面求最大路径,否则会少算一个结点 1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 阅读全文