上一页 1 ··· 3 4 5 6 7
摘要: 请戳此处 阅读全文
posted @ 2017-11-20 18:54 MSPqwq 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你n次插队操作,每次两个数,pos,w,意为在pos后插入一个权值为w的数; 最后输出1~n的权值 题解: 首先可以发现,最后一次插入的位置是准确的位置 所以这个就变成了若干个子问题, 所以用线段树维护一下每个区间剩余多少位置可选 对于一个pos 如果左儿子的剩余超过当前位置,就递归进左子 阅读全文
posted @ 2017-11-20 15:53 MSPqwq 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 #include 4 typedef long long ll; 5 #define N 100010 6 using namespace std; 7 struct node 8 { 9 ll l,r,lz,sum; 10 }t[4*N]; 11 ll read() 12 { 13 ll ret=0,neg=1;... 阅读全文
posted @ 2017-11-20 15:05 MSPqwq 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 给出一个n,求1-n这n个数,同n的最大公约数的和 n<=1e9 考虑枚举每个因数,对答案贡献的就是个数*大小 阅读全文
posted @ 2017-11-19 23:51 MSPqwq 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。 由于逆序排列的数量非常大,因此只需计算并输出该数 Mod 10^9 + 7的结果就可以了。 阅读全文
posted @ 2017-11-19 19:50 MSPqwq 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 请戳这里! 阅读全文
posted @ 2017-11-18 16:00 MSPqwq 阅读(151) 评论(0) 推荐(0) 编辑
摘要: emmmm 显然的是a串长度是s串长度的因数 我们可以暴力枚举因数然后暴力check 阅读全文
posted @ 2017-11-18 11:28 MSPqwq 阅读(213) 评论(0) 推荐(0) 编辑
摘要: KMP之所以线性,因为匹配的时候i是不往回走的 我们只用调整j的位置 假设在s中找t 用二元组(i,j)表示s串的[i-j+1,i] 与t串的[1,j]匹配 假设s[i+1]和t[j]匹配上了,就j++ 如果不匹配的话,我们就想办法调整j, 直到找到一个满足二元组条件的j并且t[j+1]=s[i] 阅读全文
posted @ 2017-11-18 11:02 MSPqwq 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 经典2-sat 题解: 把一对夫妻视为一个集合,按淫乱关系建边 如果有淫乱关系显然不能都坐在新娘对面 注意要给(1,1+n)连边保证必须新娘和新郎坐对桌 tarjan缩完点之后,因为tarjan的编号是拓扑的逆序,所以我们在选择坐在新娘对面的人的时候,只要保证选择w和h编号较小的即可 阅读全文
posted @ 2017-11-18 09:52 MSPqwq 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 把爱恨和最大距离视为限制条件,可以知道,最大距离和限制条件多少具有单调性 所以可以二分最大距离,加边+check 阅读全文
posted @ 2017-11-18 09:32 MSPqwq 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 关于2-SAT 问题给出的证明和思路就不再赘述 核心是对于问题给出的条件建图,然后跑tarjan缩点 (在一个强联通分量里bool值是相同的) 看集合两个元素是否在一个强联通分量来判断是否合法 利用强联通分量是拓扑序的逆序可以进行方案的选择 2-SAT 问题代码一般比较短,重点是建图 一般来说对于一 阅读全文
posted @ 2017-11-18 07:45 MSPqwq 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 题面还好,就不描述了 重点说题解: 由于仇恨关系不好处理,所以可以搞补图存不仇恨关系, 如果一个桌子上面的人能坐到一起,显然他们满足能构成一个环 所以跑点双联通分量 求点双联通分量我用的是向栈中push边的方法 请注意:只向栈中push树枝边 这样每次一对父子(u,v) 如果low[v]<=dfn[ 阅读全文
posted @ 2017-11-17 16:15 MSPqwq 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 题意: 给个无向图,问有多少个割点,对于每个割点求删除这个点之后会产生多少新的点双联通分量 题还是很果的 怎么求割点请参考tarjan无向图 关于能产生几个新的双联通分量,对于每个节点u来说,我们判断他是否是割点,即判断是否满足他的儿子v的low[v]>dfn[u] 而这个时候割掉这个点就会让双联通 阅读全文
posted @ 2017-11-16 19:25 MSPqwq 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 题意: 给一个无向图,保证任意两个点之间有两条完全不相同的路径 求至少加多少边才能实现 题解: 得先学会一波tarjan无向图 桥的定义是:删除这条边之后该图不联通 一条无向边(u,v)是桥,当且仅当(u,v)为树枝边,且满足 DFN(u)<Low(v).(因为 v 想要到达 u 的父亲必须经过(u 阅读全文
posted @ 2017-11-16 17:02 MSPqwq 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 欢迎来到我的博客! 阅读全文
posted @ 2017-11-15 20:21 MSPqwq 阅读(435) 评论(4) 推荐(0) 编辑
摘要: 题目大意: 给一个有向图,一个文件可以从某个点出发传递向他能连的边 现在有两个问题 1.至少需要多少个放文件可以让整个图都有文件 2.可以进行一个操作:给一对点(u,v)连一条u->v的有向边,问至少需要多少次操作,才能使任意一个点放的文件都能传递到整个图 题解: 先tarjan缩个点 对于1. 找 阅读全文
posted @ 2017-11-15 20:13 MSPqwq 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 题目用google翻译实在看不懂 其实题目意思如下 给一个有向图,求点个数大于1的强联通分量个数 阅读全文
posted @ 2017-11-15 19:14 MSPqwq 阅读(140) 评论(0) 推荐(0) 编辑
摘要: Tarjan模板题 阅读全文
posted @ 2017-11-15 18:40 MSPqwq 阅读(170) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7