上一页 1 2 3 4 5 6 7 8 ··· 12 下一页
摘要: ai入队首还是队尾 只对已经放入的1到ai-1的贡献不同。 对后面的ai+1到n没有贡献。 ai+1入队尾,则ai一定在ai+1前,ai+1入队首,则ai一定在ai+1后。 所以ai入队首还是队尾看前面有多少比他小的,多少比它大的就行了。树状数组维护(权值线段树) #include<bits/std 阅读全文
posted @ 2022-06-02 21:11 qingyanng 阅读(25) 评论(0) 推荐(0) 编辑
摘要: https://codeforces.com/gym/103729/problem/J 题意: 选择一个子串翻转一次,问是否能得到一个回文串 #include<bits/stdc++.h> //#include <bits/extc++.h> using namespace std; // usin 阅读全文
posted @ 2022-06-01 19:50 qingyanng 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 题意: 判断数组是否满足所有子数组满足: 枚举最值,一个最值所控制的区间是左边和右边第一个比他大的数的位置的开区间。 用这个区间的最大子区间和和最值比较 最大子区间和可以用i到R-1的最大值减去L到i-1的最小值得到,也可以像大嘴猫吃金币那样求。 http://acm.zzuli.edu.cn/pr 阅读全文
posted @ 2022-06-01 16:08 qingyanng 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 注意求的是子数组,所以把原数组按每段递增划分,一段的贡献就是 len * (len + 1) / 2. 这样分块,求前缀和就能O1的求出一段区间的不讲子数组个数。 ll f( int l, int r ) { if( id[l] == id[r] ) { return cal( l, r); } r 阅读全文
posted @ 2022-05-31 16:58 qingyanng 阅读(19) 评论(0) 推荐(0) 编辑
摘要: http://oj.daimayuan.top/problem/884 f[i] 表示以a[i]结尾的最长上升子序列,cnt[i]表示以a[i]结尾的最长上升子序列的个数。 可以n方转移: f[i] = max(f[j] + 1, f[i]); cnt[i] += cnt[j] | (f[i] == 阅读全文
posted @ 2022-05-19 11:44 qingyanng 阅读(164) 评论(0) 推荐(0) 编辑
摘要: https://codeforces.com/gym/103107/problem/E 题意: 给出n个字符串si,求最长字符串的序列S, S满足 对所有的i从1到n-1, si 是si+1的子串。 思路: si的子串就是si的一些前缀的后缀(经典套路),也就是在字典树上si的祖宗的fail树的祖宗 阅读全文
posted @ 2022-05-18 22:34 qingyanng 阅读(44) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.com.cn/problem/P2473 倒推 f[i][S] 表示1到i-1关拿的物品集合为S,从i到最后的期望 不知道下一关出现的是哪种物品,所以当前的期望是下一步所有情况的最优决策乘 1/k。 #include<bits/stdc++.h> using na 阅读全文
posted @ 2022-05-17 17:15 qingyanng 阅读(14) 评论(0) 推荐(0) 编辑
摘要: f[i][l] 表示前i个元素,选l个,且当前位置选的最大值。 f[i][l]从f[j][l - 1]转移, i - k ⇐ j < i,用单调队列优化 不能有f[i][l] ←- f[i- 1][l] 这样没法控制每k个选一个 所以初始还要把f赋-1,f[0][0] = 0 #include<bi 阅读全文
posted @ 2022-05-17 11:57 qingyanng 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 题意 : 给出一个有向图,无重边自环。 选择一段包含k个点的路径,问路径上的最大值最小是多少。 思路: 二分答案,转化为判定性问题。 On的判断,可以想到从入度为0的点搜,更新一个dist数组,遇到大于二分的答案x的点v,dist[v] = 0,出现dist大于k的点就判对。处理环:入度仍然不为0的 阅读全文
posted @ 2022-05-15 10:28 qingyanng 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 前缀和问题,考虑字典树 由于字典树的存储结构,从上到下贪心是不行的 但是可以从下往上:当前这个子树的大小小于等于k就不管它,等着上面一块处理,大于k就依次减去最大的子树,剩余的sz等着上面一块处理。 #include<bits/stdc++.h> using namespace std; #defi 阅读全文
posted @ 2022-05-12 10:58 qingyanng 阅读(32) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 12 下一页