摘要:
关于nvim下Tutor的总结 用于自查,有两三个命令未记,配合Tutor实操更好 命令 释义 dw 删除一个单词,光标跳转到下一个单词的第一个字母,中间有空格也会删除 d$ 从光标开始,删除到行尾 de 删除一个单词,不会删除该单词后的空格 0 回到行首 2w 跳转2个单词,光标移动到第2个单词的 阅读全文
摘要:
P3387 题目链接 题意 2-SAT板题 思路 依据约束关系建图,用$Tarjan$跑强连通分量,如果一个值的true和false再同一个强连通分量则无解 我觉得最具有争议的地方就是洛谷的输出,输出本来按照缩点后的拓扑序,同一个值的true和false状态选择拓扑序大的作为结果即可,即选SSC编号 阅读全文
摘要:
tarjan算法的简单应用 hdu1269 题目链接 题意 给定有向图,问改有向图是否只有一个强连通分量 思路 tarjan算法求有向图强连通分量的简单应用 代码 #include <iostream> #include <cstring> #include <string> #include <a 阅读全文
摘要:
点双连通 poj1523 题目链接 题意 给出无向图,求割点,并给出每个割点去掉后会形成几个分量 思路 tarjan,会形成几个分量注意根节点的不同即可 代码 #include <iostream> #include <cstring> #include <string> #include <alg 阅读全文
摘要:
kosarajo求强连通分量的证明 因为根据反向图的dfs求出的拓扑序列使得原本的DAG图中点的搜索优先级倒转 所以在原图dfs会优先将最末端的点优先跑完,而上面的点再跑时,因为下面的点已经被标记过,阻止了连通块的扩张 按照DAG的逆优先顺序,从下到上,依次把强连通分量“挖出来” 例题 poj218 阅读全文
摘要:
一个小知识点:即用floyd求解两点之间的是否可达 poj1575 题目链接 题意 求出不可能为中位数的水滴 思路: 依据重量关系建图,用floyd求解,求出每个点可到达点的个数和别的点可到达该点的个数,若两个数其中有一个超过$\frac{n}{2}$,则该点必不可能是中位数点 代码: #inclu 阅读全文
摘要:
珂朵莉树练习 代码 // Problem: E. Willem, Chtholly and Seniorious // Contest: Codeforces Round #449 (Div. 2) // URL: https://codeforces.com/contest/897/problem 阅读全文
摘要:
题目链接 数组切分 思路 因为本身给定的序列是$1$~$n$的一个排列,最暴力的思路就是深搜 同时也就可以考虑$DP$,设置f[i]表示前$i$个数能够组成的方案数目,则为求f[i]需通过f[1]...f[i-1]的状态递推,设$1\leq j\leq i$,若满足$j$到$i$之间最大值和最小值之 阅读全文
摘要:
题目 1058. 股票买卖 V 法一 三个状态 除了有货、无货两个状态,增设一个冷冻期状态 f[i][0]表示无货,f[i][1]表示有货,f[i][2]表示处于冷冻期 f[0][1]为非法状态,初始值为无穷小 代码1 #include <iostream> #include <algorithm> 阅读全文
摘要:
题目 1057. 股票买卖 IV 思路 状态机模型 定义f[i][j][0]为在到i天时已经进行了j次交易且手中没货的状态 定义f[i][j][1]为在到i天时正在进行第j次交易且手中有货的状态 容易分析状态转移: f[i][j][0] = max(f[i - 1][j][0], f[i - 1][ 阅读全文
摘要:
题目链接 大盗阿福 思路一 线性dp 设置状态$f[i]$表示前$i$家店铺所能够拿到的最多金额,最后$f[n-1]$和$f[n]$取最大值即可 状态转移:因为不能相邻,所以$f[i]$和$f[i-2]$相关,同时也和$f[i-1]$去掉第$i-1$家店铺金额相关,也是取大值 代码 #include 阅读全文