NOIP赛前集训营-提高组
ding_ning123
这个作者很懒,什么都没留下…
展开
-
ST table
建表 设dp(i,k)dp(i,k)dp(i,k)为区间 [i,i+2k][i,i+2^k][i,i+2k]内min,max\min,\maxmin,max dp(i,k)=max,min(dp(i,k−1),dp(i+2k−1,k−1))dp(i,k)=\max,\min(dp(i,k-1),dp(i+2^{k-1},k-1))dp(i,k)=max,min(dp(i,k−1),dp(i+2k−1,k−1)) 因此建表是O(NlogN)O(NlogN)O(NlogN)的 查询 把区间[l,r原创 2020-11-05 19:32:40 · 231 阅读 · 0 评论 -
2020牛客NOIP赛前集训营-提高组(第五场)C-经典字符串问题
Statement Solution 我们对每个字符串离散化,就是一道静态区间第k大裸题 需要用到可持久化线段树—主席树(模板) 附上自己的模板 #include <cstdio> #include <string> #include <iostream> #include <algorithm> #define ll long long const int N=1e5+10,M=N<<5; using namespace std; int原创 2020-10-28 20:35:03 · 155 阅读 · 0 评论 -
2020牛客NOIP赛前集训营-提高组B-牛半仙的妹子图(Kruskal)
Statement Solution 题目其实是求[l,r][l,r][l,r]内颜色数之和 我们看到ci≤600c_i \leq600ci≤600 快乐~ 于是考虑每一种颜色,可以做到6∗1076*10^76∗107时复,约等于O(nn)O(n\sqrt n)O(nn) 先用KruskalKruskalKruskal跑出MSTMSTMST 然后记录到达每一种颜色路径上最大边权(#困难接受程度) 那么就可以算r−max(l,ti)+1r-\max(l,t_i)+1r−max(l,ti)+1次答案原创 2020-10-23 20:40:41 · 195 阅读 · 0 评论