![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
序列
文章平均质量分 89
&*^*&
这个作者很懒,什么都没留下…
展开
-
acm-(交互题、思维、二分、子序列、好题)2020 年 “游族杯” 全国高校程序设计网络挑战赛 B. Binary String
vj传送门本题实在是非常妙,首先二分求出000和111中数量较小的一个的数量,方便起见,假设000数量最少,设cnt0,cnt1cnt_0,cnt_1cnt0,cnt1分别表示000和111的数量。假设序列是如下形式:111...10111..10111..1.....111..10111...1111...10111..10111..1.....111..10111...1111...10111..10111..1.....111..10111...1,即假设第i−1i-1i−1个000与第iii.原创 2021-01-23 10:50:37 · 293 阅读 · 0 评论 -
acm-(好题、模拟、思维、构造)Codeforces Global Round 11 D. Unshuffling a Deck
传送门构造方式大致就是,按照1、n、2、n−1、...1、n、2、n-1、...1、n、2、n−1、...的方式交替选择,对于每个选择的数iii,我们通过一次操作将它放到对应的位置上,每次我们都是在一个区间[l,r][l,r][l,r]内选择数字,这个区间会不断缩小,直到所有数字的排序完成。注意到这里放到对应的位置上,这个位置并不完全固定,每次我们都会让整个序列反转一下,所有这个位置也会跟着反转。具体如何通过一次操作放到对应的位置上,如果是想放到[l,r][l,r][l,r]的左边,假设数字iii位于.原创 2020-11-27 08:30:37 · 184 阅读 · 0 评论 -
acm-(思维、找规律、打表)Codeforces Round #676 (Div. 2) E. Swedish Heroes
传送门首先答案一定是∑i=1nbiai,(bi=−1,1)\sum_{i=1}^nb_ia_i,(b_i=-1,1)∑i=1nbiai,(bi=−1,1)。我们考虑最终的答案中的{bi}\{b_i\}{bi}序列有何性质,假设其中−1-1−1有xxx个,111有yyy个,那么满足(2x+y)%3=1(2x+y)\%3=1(2x+y)%3=1。这个可以通过打表看出(我其实看不出 ),这里给出一个证明:利用数学归纳法来证明,每次我们都会合并两个序列,考虑两个序列的性质,若两个序列都满足(2x.原创 2020-11-24 07:14:48 · 158 阅读 · 0 评论 -
acm-(差分、暴力、序列)Educational Codeforces Round 98 E. Two Editorials
传送门本质上就是找两个长度为kkk的窗口算贡献。考虑先固定第一个窗口位于[L,R](R−L+1=k)[L,R](R-L+1=k)[L,R](R−L+1=k),然后暴力遍历(li,ri)(l_i,r_i)(li,ri),考虑它们对第一个窗口的总贡献为smsmsm,然后考虑第二个窗口位于每个位置上的时候对应的附加贡献,smsmsm和附加贡献加起来后取maxmaxmax即可。本题的难点在于如何快速计算(li,ri)(l_i,r_i)(li,ri)对于第二个窗口在每个位置上的贡献。这里运用差分的方法.原创 2020-11-20 21:55:36 · 200 阅读 · 0 评论 -
acm-(根号分治、序列)Codeforces Round #683 (Div. 2) F2. Frequency Problem (Hard Version)
传送门首先可以证明最终答案的子串中一定有一个元素是在整个串中出现次数最多的。为什么正确呢?我们考虑最终的答案子串的形成过程,我们可以最初取整个串作为子串,不过它可能不符合题目要求,即存在至少两个最大出现次数的元素,假设出现次数最多的元素是D,那么我们从整个串的头或尾部删除元素D,直到满足条件即可。然后容易发现当删除的是一个D,那么只有两种情况发生,如果D和其它某些元素变得相等了,那么此时就不用继续往下删了;如果D仍然大于其它元素,那么可以继续往下删。当删除的不是一个D,那么只可能是其它元素变得更小,所以.原创 2020-11-18 09:20:28 · 299 阅读 · 0 评论 -
acm-(序列、贡献计算)Codeforces Round #680 (Div. 2) D. Divide and Sum
传送门先考虑将数组aaa从小到大排列,对于a[1∼n]a[1\sim n]a[1∼n]假设我们选择xxx个数放在ppp序列中,那么不难得到我们必须在a[n+1∼2n]a[n+1\sim 2n]a[n+1∼2n]中同样选择xxx个数放在qqq序列中。对于特定的ppp和qqq而言,我们总是先拿出ppp中最小的一个数与qqq中最大的一个数作差求贡献,然后再拿出ppp中第二小的一个数与qqq中第二大的一个数作差求贡献…以此类推。由于我们在a[1∼n]a[1\sim n]a[1∼n]中选择了xxx个数放在pp.原创 2020-11-17 12:34:16 · 137 阅读 · 0 评论 -
acm-(思维、差分)Codeforces Round #681 (Div. 2) D. Extreme Subtraction
传送门考虑关于aaa的差分数组ddd,操作一相当于给某一个ddd值加上kkk,操作二相当于给某一个ddd值减去kkk,我们发现最终一定要让ddd值都为000,于是我们让负的ddd做操作一,正的ddd做操作二,由于操作一会导致a1a_1a1的减少,我们关注操作一的总贡献,假设其为sumsumsum,比较sumsumsum和a1a_1a1的大小即可。若sum<a1sum<a_1sum<a1说明a1a_1a1最终会被减少为负数,输出NONONO即可,否则输出YESYESYES。in.原创 2020-11-15 00:58:32 · 86 阅读 · 0 评论 -
acm-(dfs序、拓扑序)2020ICPC·小米 网络选拔赛第一场 G.Tree Projection
传送门先看AAA序列,如果要让AAA序列构成一棵树只需要将AAA序列中的所有节点向在它前面的节点连边即可,不过这不能保证这棵树的dfsdfsdfs序一定是AAA序列,因此这里要用到一个小技巧,我们每次都向最后加的一条边的两个端点中的其中一个端点连边即可,这样一定能保证是dfsdfsdfs序一定是AAA序列,可以考虑用归纳法证明这一点,也可以随便验算几个例子,显然是正确的。再看BBB序列,我们发现只需要保证在遍历BBB数组时每次连边都是当前节点向之前的节点连边就一定能够保证这颗树的拓扑序是BBB序列,因.原创 2020-10-29 09:29:49 · 173 阅读 · 1 评论 -
acm-(LIS、序列)Educational Codeforces Round 97 (Rated for Div. 2) E. Make It Increasing
传送门本题就是给你一个数组a[n]a[n]a[n],然后其中有kkk个位置不能修改,其它位置可修改为任意数值,问最少修改几次能够让整个序列严格单调递增。考虑两个相邻的不能修改的位置l,rl,rl,r,也就是说我们要让a[l],a[l+1],a[l+2],...,a[r]a[l],a[l+1],a[l+2],...,a[r]a[l],a[l+1],a[l+2],...,a[r]单调递增,并且a[l],a[r]a[l],a[r]a[l],a[r]不能被修改。先复习一下最长单调不降序列的O(nlogn)O.原创 2020-10-28 17:26:11 · 123 阅读 · 0 评论 -
acm- (序列dp)Educational Codeforces Round 97 (Rated for Div. 2) C. Chef Monocarp
传送门本题就是让求sum[n]=∑i=1n∣ti−ai∣sum[n]=\sum_{i=1}^n|t_i-a_i|sum[n]=∑i=1n∣ti−ai∣,注意这里的tit_iti是已经由小到大排好序的,的最大值,并且要求1≤a1<a2<...<an1\le a_1<a_2<...<a_n1≤a1<a2<...<an。考虑动态规划,设dp[i][j]dp[i][j]dp[i][j]表示sum[i]sum[i]sum[i]在ai=ja_i=.原创 2020-10-28 09:59:21 · 211 阅读 · 0 评论 -
acm-(动态规划,01串)Codeforces Round #672 (Div. 2) E. Battle Lemmings
传送门设0的总数为c,连续0的数目为l1,l2,...,lh\mathbf{l_1,l_2,...,l_h}l1,l2,...,lh(1~h代表不同的连续0段),那么ans=c(c−1)2−∑i=1hli(li−1)2\mathbf{ans=\frac {c(c-1)}2-\sum_{i=1}^{h}\frac {l_i(l_i-1)}2}ans=2c(c−1)−∑i=1h2li(li−1),要让ans最小,我们就要让∑i=1hli(li−1)2\mathbf{\sum_{i=1}^{h.原创 2020-09-27 09:38:31 · 116 阅读 · 0 评论 -
acm-(思维,构造,转化,序列)Codeforces Round #672 (Div. 2) C2. Pokémon Army (hard version)
传送门最开始的想法很简单,观察这个正负交替的式子可以发现可以这样配对ab1+(ab3−ab2)+(ab5−ab4)+...+(abk−abk−1)\mathbf{a_{b_1}+(a_{b_3}-a_{b_2})+(a_{b_5}-a_{b_4})+...+(a_{b_{k}}-a_{b_{k-1}})}ab1+(ab3−ab2)+(ab5−ab4)+...+(abk−abk−1)。显然括号中的值是大于等于0的。如果把数组中每个元素用点表示(i,a[i])\mathbf{(i.原创 2020-09-27 08:31:07 · 103 阅读 · 0 评论