1495:【例 2】孤岛营救问题 分层最短路做。以获取钥匙的状态建立分层图,然后BFS就行了 https://blog.csdn.net/a_pathfinder/article/details/100537489 里面写了BFS+状压 和 最短路得解法 like 汽车加油行驶问题(另一个分层图的问 ...
分类:
其他好文 时间:
2020-07-31 19:25:44
阅读次数:
96
示例对象: { name: 'a', next: [ { name: 'b', next: [ { name: 'd', next: [] }, { name: 'e', next: [] } ] }, { name: 'c', next: [ { name: 'f', next: [] }, { ...
分类:
Web程序 时间:
2020-07-29 21:58:21
阅读次数:
115
代码不想写就口胡了 1001.用 歌唱王国 的结论$E(A)=\sum_{i=1}^{len} a_{i}*m^i,\ a_{i}=is\_border(i)$回文串border就是回文自动机的fail直接上回文自动机比较字典序即可 1002. 1003.直接离线考虑每一位的贡献用个dfs序维护线段 ...
分类:
其他好文 时间:
2020-07-28 22:42:45
阅读次数:
90
如果不需要确定当前遍历到了哪一层,BFS模板如下。 while queue 不空: cur = queue.pop() for 节点 in cur的所有相邻节点: if 该节点有效且未访问过: queue.push(该节点) 如果要确定当前遍历到了哪一层,BFS模板如下。 这里增加了level表示当 ...
分类:
其他好文 时间:
2020-07-28 22:38:05
阅读次数:
77
思路:题目的边权是由随机数给出的,所以最短路径上的边数不会很长,有多条不同走法的最短路的情况出现的概率也很低,所以可以先找出一条最短路,删掉一条边后,转化为 \(k - 1\) 的子问题继续求解,直到 \(k = 0\) ,记录最大值就好。。。。 #include <iostream> #inclu ...
分类:
其他好文 时间:
2020-07-28 22:17:45
阅读次数:
90
全排列问题 给定一个整数n,将数字1~n排成一排,将会有很多种排列方法。 现在,请你按照字典序将所有的排列方法输出。 输入格式 共一行,包含一个整数n。 输出格式 按字典序输出所有排列方案,每个方案占一行。 数据范围 1≤n≤7 输入样例: 3 输出样例: 1 2 3 1 3 2 2 1 3 2 3 ...
分类:
其他好文 时间:
2020-07-28 16:53:09
阅读次数:
118
Rinne Loves Edges Problem: Rinne 最近了解了如何快速维护可支持插入边删除边的图,并且高效的回答一下奇妙的询问。 她现在拿到了一个 n 个节点 m 条边的无向连通图,每条边有一个边权 \(w_i\) 现在她想玩一个游戏:选取一个 “重要点” S,然后选择性删除一些边,使 ...
分类:
其他好文 时间:
2020-07-28 10:15:00
阅读次数:
57
题目 传送门 思路 这题的主要难点在于我们不知道是三个起点分别在哪里 但是我们知道三条路径一定会交于某一个点 基于此,我们考虑枚举这一个点, 那么算法的复杂度就卡在这个点和三个王国的国土的最短路径上面 这个可以用bfs来预处理,$dis[k][i][j]\(第k个王国距离点\)(i,j)$的最短距离 ...
分类:
其他好文 时间:
2020-07-28 00:14:30
阅读次数:
71
题意 小明从一岸游泳到另一岸,每片区域有水深,一旦水深超过L,小明就会淹死 同时每段时刻有海浪和退潮 搜索一下 然后记忆化一下 老了,搜索写半天 #include<bits/stdc++.h> using namespace std; /*int main() { // freopen("data2 ...
分类:
其他好文 时间:
2020-07-27 23:58:02
阅读次数:
127
思路: 1.使用DFS遍历整颗树 2.二叉树的根节点的范围为INT_MIN,INT_MAX. 3.对于当前节点判断是否合法,合法条件:先遍历左子树的最大值是否小于当前节点的值,在遍历右子树,右子树的最小值是否大于当前节点的值 注意: 根节点的边界为 INT_MIN,INT_MAX 左子树的范围:lo ...
分类:
其他好文 时间:
2020-07-27 13:53:58
阅读次数:
61