UR #13 Yist】的更多相关文章

第一次打UR,打了一个半小时就弃疗了QAQ 这是我唯一一道考试的时候做出来的题目,其他两道连暴力都懒得写了 很容易发现对于每个要删除的点 我们找到左边第一个比他小的不用删除的点,右边第一个比他小的不用删除的点 中间这段区间就是对于这个点被删除时的极大区间 对于所有的区间我们取min就可以了 对于找到某个点左边第一个比他小的不用删除的点 我是这样考虑的:将数从大到小的进行添加,并用并查集维护不用删除的点 那么之后这个点存在的极大区间显然是这段区间里的1的个数+1 这个算法是O(na)的 #incl…
题目 orz myy 首先注意到答案有单调性,于是我们可以考虑二分一个\(x\),之后去判断一下每次只使用长度为\(x\)的区间能否删出目标序列 显然我们应该贪心地删除需要删除元素中最小的那一个,感性理解就是先删除最小的能使得接下来删除的限制尽量小 复杂度是\(O(qn^2\log n)\) 再大致理解一下发现我们并不需要二分,对于一个需要删除的元素,需要用到的最大区间长度是可以算出来的:我们搞一个单调栈,处理出每一个需要删除的元素左右两边第一个比它小的不需要删除的\(l_i,r_i\),再减去…
UOJ小清新题表 题目摘要 UOJ链接 给出一个排列 \(A\) 以及它的一个非空子序列 \(B\),给出一个 \(x\) 并进行若干次操作,每一次操作需要在 \(A\) 中选择一个长度恰好为 \(x\) 的区间并删除它的最小值.如果在操作结束以后剩下的数组恰好是 \(B\),那么就可以得到 \(x\) 分,否则得到 \(0\) 分. 有 \(q\) 组询问,所有的 \(A\) 序列都是一样的,但 \(B\) 序列不同.求每次询问能得到的最大得分. \(B\) 序列是一个 01 串,若该位置上为…
考试的时候没有注意到可以将(a,b)放在二维平面上之后旋转坐标系,使得转移变成树状数组二维偏序 这样就算我想出来了第二个转移的斜率优化也没有什么卵用啊(摔西瓜 设g(i)表示当前站在第i个水果下面且第i个水果此时并没有记分的最大得分 设f(i)表示当前站在第i个水果下面且第i个水果此时已经记分的最大得分 g(i)=max(f(j)) (满足j能到达i) f(i)=max(g(j)+(i-j+1)^2)(满足从i出发可以一路接水果走到j) 首先考虑g(i)的转移,我们注意到j能到达i当且仅当 ab…
总感觉这位大仙讲的很清楚:bztminamoto 题意 题目讲的是求 l~r 内所有数的次大质因子,这里设 f(x) 为 x 的次大质因子 我们差分一下就变成求两个前缀和信息了 按照套路,我们考虑 S(i,j) 表示小于等于 i 的数内,所有最小质因子小于等于 p[j] 的次大质因子的前缀和 然后我们考虑将所有数分为合数与质数,那么质数的次大质因子为 0 ,无贡献 至于合数就是枚举它的最小质因子,那么枚举到 pk (k>=j)时,我们有两种情况: 当前的 pk 是次大质因子,那么最大质因子可能为…
题面 传送门 题解 这是一道语文题 不难看出,题目所求即为\(l\)到\(r\)中每个数的次大质因子 我们考虑\(Min\_25\)筛的过程,设 \[S(n,j)=\sum_{i=1}^nsec_p(i)[min_p(i)\geq P_j]\] 用人话来说的话,就是\(S(n,j)\)表示\(1\)到\(n\)之间所有满足最小值因子大于等于\(P_j\)的\(i\)的次大质因子之和 我们照例把质数和合数的贡献分开考虑.所有质数贡献为\(0\),而对于合数,我们枚举最小质因子\(P_k\).此时分…
http://uoj.ac/problem/187 每个点只能从时间,b+a,b-a三维都不大于它的点转移过来,将点按时间分成尽量少的一些段,每段内三维同时非严格单调,每段内的点可能因为连续选一段而产生平方的贡献,可以每段开一个单调栈维护斜率优化dp处理. 注意到b-a和b+a同时小于可以推出时间小于,因此可以按b-a升序处理,b+a一维用树状数组维护前缀最值,处理选的点在时间上不连续的情况. #include<bits/stdc++.h> typedef long long i64; ; i…
题目:http://uoj.ac/problem/188 令 \( s(n,j)=\sum\limits_{i=1}^{n}[min_i>=p_j]f(j) \) ,其中 \( min_i \) 表示 i 的最小质因子. 令 \( g(n,j)=\sum\limits_{i=1}^{n}[i \in P or min_i>p_j]1 \) ,其中 P 表示质数集合. \( s(n,j)=s(n,j+1)+s(\frac{n}{p_j},j)+p_j(g(\frac{n}{p_j},cnt)-(…
Description 给定 \(\sum_{i=l}^r f[i]\) \(f[i]=\) 把 \(i\) 的每一个质因子都从小到大排列成一个序列(\(p_i^{c_i}\)要出现 \(c_i\) 次)后 , 第二大的质因子. 题面 Solution 符合 \(Min25\) 筛的处理顺序. 递归处理每个质因子作为次大值时的贡献,和不作为次大值时贡献的方案数 , 预处理一下区间质数个数就行了. #include<bits/stdc++.h> using namespace std; type…
传送门 Sol 设 \(f_i\) 表示 \(i\) 的次大质因子 题目就是要求 \[\sum_{i=l}^{r}f_i\] 考虑求 \(\sum_{i=1}^{n}f_i\) 所求的东西和质因子有关,考虑 \(min25\) 筛的那一套理论 设 \(s(n,j)=\sum_{i=1}^{n}[low_i\ge p_j]f_i\),其中 \(low_i\) 表示 \(i\) 的最小质因子,\(p_j\) 为第 \(j\) 个质数 那么考虑枚举最小质因子转移 首先如果 \(p_k\) 不是次大质因…