摘要:
A 炼金术师 离散化一下排个序取最值即可 #include <iostream> #include <cstdio> #include <algorithm> using namespace std; const int N=1e6+10; int a[N],x[N],y[N],n,m,ans; i 阅读全文
摘要:
题面 https://www.luogu.com.cn/problem/P2336 分析 先把姓名串在一起做后缀数组,注意各串之间要用不同的分隔符 然后对于每个读入的询问,二分确定它在排好序的后缀上可选的一段区间 接下来这种区间求不同元素出现次数的问题就是经典莫队了 求某元素出现次数,在莫队的时候做 阅读全文
摘要:
题面 https://www.luogu.com.cn/problem/P2178 分析 对酒名用处理出height,按照height从大到小枚举(排除 1 ),由于 LCP(i,j)=min(LCP(k,k-1))(k>i) ,所以在 height 单调递减的情况下,可以用用并查集合并 i 和 i 阅读全文
摘要:
题面 https://www.luogu.com.cn/problem/P1117 分析 其实朴素暴力就有 95pts ... 设 a[i] 为以第 i 位为结尾的 AA 串个数, b[i] 为以第 i 位开头的 AA 串个数 则答案为 $\sum_i^{n-1} a[i]\times b[i]$ 阅读全文
摘要:
题面 https://www.luogu.com.cn/problem/P2900 分析 首先把长宽同时小于等于别人的土地除去,因为买下它的代价必然可以被覆盖 可以用按 w,l 双关键字降序排序除去,除完以后发现此时 w 单调递减 l 单调递增 考虑转移方程 $f[i]=min(f[j]+w[j]* 阅读全文
摘要:
题面 https://www.luogu.com.cn/problem/P6624 分析 后面那坨 gcd 直接欧拉反演掉,然后枚举 d ,原式形式变成 $\sum_{d=1}^{w_{max}} \sum_{T,d|w_{e1},d|w_{e2},...,d|w_{en-1}}\sum_{i=1} 阅读全文
摘要:
题面 https://www.luogu.com.cn/problem/P4111 分析 矩阵树裸题 一个连通图的生成树个数等于度数矩阵-邻接矩阵的矩阵的行列式 消成上三角求斜对角即可 代码 #include <iostream> #include <cstdio> #include <cmath> 阅读全文