随笔分类 - 题解
1
摘要:这道题的树没说明父亲和儿子的输入顺序,以前也遇到过,蛋疼 思路: 1)ans=总点数-隔离了的点数 2)第i次隔离的边一定是深度为i的点和深度为i-1的点的连边,所以用vector存每层的点 3)预处理f[i]储存以i为根的子树的点数 4)已经被隔离了的点就不用了搜惹 5)由于隔离了的点数是单调递增
阅读全文
摘要:洛谷AC10道蓝题纪念 直接暴力搜索顺子、带牌 搜索完每一层后,出完剩下的牌,因为一种牌只有一张、两张、三张、四张的情况,所以一定可以一次出完,保险起见,还是算一下为好(以防万一数据不好) 代码:
阅读全文
摘要:一开始不知道toposort可以做,写了个记忆化搜索,结果T了qwq 然后一看题解,豁然开朗,本蒟蒻见识浅短,还不曾知道还有这种操作 设 f[i] 是以i结尾的最长链个数,那么 f[i]=∑f[k] (k有一条出边指向i) 然后统计出度为0的点i的f[i],累加就是ans 这一过程显然可以在topo
阅读全文
摘要:一道经典的拓扑排序的题目 原题链接 首先,对于一条路径中的点,没出现的一定比出现了的低级,所以在这两个点间连边 然后toposort算最长链 代码:
阅读全文
摘要:原题链接 对于两个队列a,b,求怎么每次只序列中交换相邻两个数使∑(a[i]-b[i])2 最小,输出次数对99,999,997取余 展开得:∑a[i]2+b[i]2 -∑2a[i]b[i] 而∑a[i]2+b[i]2 是不变的,所以只要最大化∑2a[i]b[i]即可。 首先可以确定,对两个序列的变
阅读全文
摘要:原题链接 图中每个环都可以缩成一个点,点权为每个点之和,如果这个强连通有一个点有酒吧,那么这个点有酒吧。不要忘了吧起点更新为强连通分量编号 最后spfa跑最长路 代码:
阅读全文
摘要:思路: 反向建边,初始化终点可以到达的点并标记,枚举没被标记的点,把他们到达的点的标记记为0(注意要开一个新的数组标记,否则可能会用已修改的点继续更新) 最后求终点到起点的最短路 代码:
阅读全文
摘要:原题:传送门 如果两个物品之间存在优惠关系就连一条边,注意值为0不要连边 然后再加一个节点0,往点1~B连权为A的边 然后求一遍最小生成树即可 代码:
阅读全文
摘要:链接 一个邮递员要从一号点到每个点再回来,求最短路 题目说一次只能去一个点,这样就简单了,求每个点最短路 怎么求回来的最短路?每个点跑一次dijkstra?这样会T 只要反向建边,再求点1到各点的最短路不就行了吗?(可以画个图手算一遍) 代码:
阅读全文
摘要:链接 做死我了,,,半夜找题自虐 floyd算法
阅读全文
摘要:原题 原题 思路 将第一个序列依次从左到右标号,然后映射到第二个序列中 因为第一个序列标号只上升的所以问题就转化为序列2标号后的最长上升子序列 代码
阅读全文
摘要:背景 这是一道tarjan缩点的模板题 原题 传送门 思路 没什么思路,先跑一遍tarjan,顺便记录每一个强联通分量(新点)的权值,将原图清0,然后遍历每一条边,如果这条边连接两个不同的强联通分量,就连一条边,最后记忆化搜索。 代码
阅读全文
摘要:思路 刚学会tarjan。。发现一道tarjan的模板题 直接跑tarjan出栈时统计 需要注意的是: 千万不要用stl栈!我再也不用stl了,卡爆。。。(╯°Д°)╯︵┻━┻ (其实这是我第一次手写stack) 代码
阅读全文
摘要:背景 我好蒻啊,这题打了半天(而且还是暴力) 第一次打紫题(的暴力),有点小激动呢。。。 原题 传送门 思路 (我当然只会写暴力) 首先肯定是BFS 这是样例1的图解 题中一个点可以有多次游戏,但是图都是一样的,每次变化的只有ex,ey,sx,sy,tx,ty。 “任何与空白的格子相邻(有公共的边)
阅读全文
摘要:原题 链接 思路 记忆化搜索 代码
阅读全文
摘要:原题 传送门 思路 dfs求联通块(其实bfs也行) 代码
阅读全文
摘要:原题 传送门 思路 可以用归并排序求逆序对个数 代码
阅读全文
摘要:原题: P1092 思路: 我太弱了,竟然打了一个上午。。。。。。 一开始我竟然想从A到B枚举每一种排列最后检查。。。很显然这种方法效率特别低——O(N!) 于是想到了由低位到高位,由两个加数上的位到和上的位,逐个枚举数字。当然如果不剪枝的话就和第一种方法没什么区别 剪枝: 剪枝一: 这个剪枝比较好
阅读全文
摘要:思路: DFS会TEL 广度优先搜索 1.每次取当前楼层上下两种情况,判断是否合法 2.因为是bfs所以如果遍历到一个节点已经走到过则是无意义的 3.所以path只要直接更改即可 代码:
阅读全文
1

浙公网安备 33010602011771号