随笔分类 - OI
摘要:线段树套分块/主席树!我们考虑到ai,p,q比较小(#include#include#includeusing namespace std;struct dq{ int p,q,k; }; vector w[100010];int f[10010],g[110][10...
阅读全文
摘要:很明显,山峰一定是n那么无论其他的数在n的左边还是右边都对应一种单峰数列ok,答案就是2^(N-1)#include#include#include#define L long long#define M 1000000007using namespace std;L...
阅读全文
摘要:很明显,山峰一定是n那么无论其他的数在n的左边还是右边都对应一种单峰数列ok,答案就是2^(N-1)#include#include#include#define L long long#define M 1000000007using namespace std;L...
阅读全文
摘要:我们先写裸的dp,设φ[i]表示长度为i的划分方案数,φ(0)=1有φ(i)=Σφ(j) (|sum[j,i]|#include#include#define N 200010 #define LL long long#define M 1000000007 usin...
阅读全文
摘要:我们先写裸的dp,设φ[i]表示长度为i的划分方案数,φ(0)=1有φ(i)=Σφ(j) (|sum[j,i]|#include#include#define N 200010 #define LL long long#define M 1000000007 usin...
阅读全文
摘要:继续上一篇那套题可以将x,y宙分开讨论,对于每一维维护一个数据结构求出所有比之小的部分的和和比之大的部分的和所以我们先将这些点分别按x,y轴排序,得到rankx和ranky之后用树状数组即可#pragma GCC optimize("O3")#pragma G++ o...
阅读全文
摘要:继续上一篇那套题可以将x,y宙分开讨论,对于每一维维护一个数据结构求出所有比之小的部分的和和比之大的部分的和所以我们先将这些点分别按x,y轴排序,得到rankx和ranky之后用树状数组即可#pragma GCC optimize("O3")#pragma G++ o...
阅读全文
摘要:最近的题目都太难了啊,于是在oj上面瞎找题目来切正好这一套题目名都比较优雅于是就选了这一套这个看起来十分像并查集没错,我们发现,如果两个结论互为逆反命题,那么这两个结论等价而且一个逆命题的逆命题或者是反命题的反命题就是自己所以我们发现,1和2是等价的,这就如同敌人的敌...
阅读全文
摘要:最近的题目都太难了啊,于是在oj上面瞎找题目来切正好这一套题目名都比较优雅于是就选了这一套这个看起来十分像并查集没错,我们发现,如果两个结论互为逆反命题,那么这两个结论等价而且一个逆命题的逆命题或者是反命题的反命题就是自己所以我们发现,1和2是等价的,这就如同敌人的敌...
阅读全文
摘要:其实就是在求有几对完全相等子串满足长度小于等于k而已很明显打一个sam就好了,条件就是mx[f[p]]#include#include#define N 200010 using namespace std;char str[N]; long long A=0;int...
阅读全文
摘要:其实就是在求有几对完全相等子串满足长度小于等于k而已很明显打一个sam就好了,条件就是mx[f[p]]#include#include#define N 200010 using namespace std;char str[N]; long long A=0;int...
阅读全文
摘要:有这么一个函数满足Σf(d)=n (d|n),给出序列a,求Σf(a[i])首先,大部分人一眼就能看出这个f就是phi吧那么考虑怎么求有phi(p)=p-1(p为质数)phi(ab)=phi(a)phi(b)(gcd(a,b)=1)phi(ka)=kphi(a)(k|...
阅读全文
摘要:有这么一个函数满足Σf(d)=n (d|n),给出序列a,求Σf(a[i])首先,大部分人一眼就能看出这个f就是phi吧那么考虑怎么求有phi(p)=p-1(p为质数)phi(ab)=phi(a)phi(b)(gcd(a,b)=1)phi(ka)=kphi(a)(k|...
阅读全文
摘要:题意:求出现次数*长度最大的回文串很水的一道题直接用回文树可以切了太菜并不会回文树,用了极慢的sam+manachermanacher求出所有回文子串用sam在parent树上面倍增就可以求出一个串的出现次数,manacher是O(n)的,倍增lgn,整体复杂度nlg...
阅读全文
摘要:题意:求出现次数*长度最大的回文串很水的一道题直接用回文树可以切了太菜并不会回文树,用了极慢的sam+manachermanacher求出所有回文子串用sam在parent树上面倍增就可以求出一个串的出现次数,manacher是O(n)的,倍增lgn,整体复杂度nlg...
阅读全文
摘要:给你一个联通无向图,问你要修建几条边使得该图是一个边双连通图无比经典,肯定是一个tarjan求桥,删掉后缩点,变成一颗树,看看有几个叶子结点,叶子结点一对对连起来即可#include#include#include#includeusing namespace std...
阅读全文
摘要:给你一个联通无向图,问你要修建几条边使得该图是一个边双连通图无比经典,肯定是一个tarjan求桥,删掉后缩点,变成一颗树,看看有几个叶子结点,叶子结点一对对连起来即可#include#include#include#includeusing namespace std...
阅读全文
摘要:题意:给你一颗树,要求断掉一条边,使得剩下两个联通快的直径之和最大一看就是树形DP嘛,c1表示最长边c2次长,f表示父亲部分的最长路上面做法不讲,我们讲一种比较新奇的方法假设我们枚举断哪一条边,在lgn时间内求出两个联通快的直径不就行了嘛怎么做呢,我们发现,可以用树的...
阅读全文

浙公网安备 33010602011771号