摘要:
分块做法 Solution 显然答案关于 X 是单调的,将所有询问按 X 排序。 那么每次操作需要找出一个分界点 bound , 把询问序列分为溢出和不溢出的两段。 对于不溢出的段,正常维护 tag : +-* 对于溢出的段,区间染色。 实现的具体 tag 是另 \(get(i)=b[x] \tim 阅读全文
摘要:
感觉有点标题党,不过我的代码确实过了qwq。 题目描述 可见: https://www.acwing.com/problem/content/155/ 样例 Input: 4 1 3 2 4 Output: a b a a b b a b 算法:暴力100pts 当然还是需要一点剪枝的呀,QAQ. 阅读全文
摘要:
新的思路: 前置题目 数星星 #144. DFS 序 1 时间复杂度 \(O(nlogn)\) C++ 代码 #include<set> #include<map> #include<queue> #include<stack> #include<ctime> #include<cmath> #in 阅读全文
摘要:
差分 \(\gcd\) 证明:\(\gcd(a_1,a_2,a_3,...,a_n)=\gcd(a_1,a_2-a_1,a_3-a_2,...,a_n-a_{n-1})\). 为方便描述 令 \(c_1=a_1,c_i=a_i-a_{i-1},i>1\). 设其最大公约数为 \(d\) , 则 \( 阅读全文
摘要:
题目直接不会做 》 推式子。 这类问题很通常的思路就是枚举约数或质因数。 \(\sum_{i=1}^{n} \gcd(i,n)\) \(=\sum_{d|n} d \times \sum_{d|i} [\gcd(i/d,n/d)=1]\) \(=\sum_{d|n} d \times \varphi 阅读全文
摘要:
有线电视网络 Solution 网络流建模 源点枚举的是点的出点,汇点枚举的是点的入点。 但如果仅仅这样的话,我们发现网络流中的最小割与原问题的解不是一一对应的。 这是因为最小割中一定不包括源点和汇点, 但是只要原问题的解最后余下两个点以上,这种方案已经包括在最小割中了。 所以我们分别考虑最后只余下 阅读全文
摘要:
1.BFS解法 抽象成DAG来做,不用考虑什么至少。 #include<set> #include<map> #include<queue> #include<stack> #include<ctime> #include<cmath> #include<bitset> #include<vecto 阅读全文
摘要:
用STL,vector,unique,sort,upper_bound也过了。 此题部分代码被卡的原因是 没有排序,导致两部分 sum>m 的剪枝效果不一,要是前半部分的重量较小,枚举 $2^{23}$ 自然就挂了。 处理方法有两种 random_shuffle() ,打乱顺序,使剪枝均匀分布。 s 阅读全文
摘要:
我用的是状压Dp。 先预处理出可以在一组的集合。 然后对每种状态枚举它的子集进行转移。 像这样子: for(i=1;i<(1<<n);i++) for(j=(i-1)&i;j;j=(j-1)&i) f[i]=min(f[i],f[j]+f[i-j]); \(f[i]\) 表示已经把 \(i\) 集合 阅读全文
摘要:
法一:IDA #include<set> #include<map> #include<cmath> #include<ctime> #include<stack> #include<queue> #include<bitset> #include<vector> #include<cstdio> 阅读全文
摘要:
更相减损法+高精度压位。 算法原理见 : https://www.luogu.com.cn/blog/user17952/solution-p2152 (不是我的). 这里给出不用 py 和 o2 的 Code(是我的). Code : #include<set> #include<map> #in 阅读全文
摘要:
树哈希解法 令 f[x][0] 为 : x 的子树都严格按照先左后右的顺序 Hash 的值。 f[x][1] 先右后左。 判断 x 是不是对称的二叉树只要判断 f[lc[x]][0] 和 f[rc[x]][1] 是否相等。 递推式: f[x][0]=p1*s1*P+a[x]*NP+((~rc[x]) 阅读全文
摘要:
差分是与前缀和互逆的,所以可以用前缀和的公式推差分的公式 \(c[i][j]=a[i][j]-a[i-1][j]-a[i][j-1]+a[i-1][j-1]\) 矩阵加减可以由定义分析,也可以换个思路 \(a[x][y]= \sum_{i=1}^{x} \sum_{j=1}^{y} c[i][j]\ 阅读全文
摘要:
2进制拆分 和 bitset 优化。 2进制拆分不会的看: https://www.acwing.com/problem/content/5/ bitset 不会的看: https://oi-wiki.org/lang/csl/bitset/ 我记得 NOI online 有一题(好像叫 买表) 和 阅读全文
摘要:
Solution tarjan 边双缩点成一棵树,然后用并查集优化。 然后看到很多 dalao 都写了个 树上倍增求 lca , 其实不用。 用并查集处理出 int par[N]; int Find(int x) { return ((par[x]==x) ? x : par[x]=Find(par 阅读全文
摘要:
后缀数组解法 前置题目 2715. 后缀数组 131. 直方图中最大的矩形 Solution 一个字符串的后缀的所有前缀恰好不重不漏地覆盖了所有的子串,所以我们可以考虑用后缀数组来做。 比如:babab 排完序后 ab abab b bab babab (以下后缀均指排名为 \(i\) 的后缀,而不 阅读全文
摘要:
一种不用Floyd的方法。 时间复杂度 每组 \(O(mn)\) Description 对于每个输入。 例如 A<B,我们由B向A连一条有向边,表示A比B小。 通过这样连边,从B出发可以遍历到的所有点都是小于B的,其他字母同理。 于是在每次连边之前,例如 A<B,先判断A在之前的不等式连成的图上能 阅读全文