自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 NOI online R2游记

这次题目很简单,但仍然改变不了我没法阿克的命运(还是菜开题开错顺序(滚粗flag+1flag+1flag+1),把第二题做成了第一题,心想着这次比上次良心于是怀着一种切sb题的思路把T2T2T2给切掉了,然后发现看错题面,之后觉得题面对了以后更sbsbsb了,不就是个线段树维护元素平方和吗,写了十分钟,挂上了一个莫队写的对拍,又测了一下极限数据,7s7s7s,嗯,很稳 在ccfccfccf的老爷...

2020-04-25 16:16:53 155

原创 luogu P6477 [NOI Online 2 提高组]子序列问题sequence

题面传送门考虑像HH的项链那道题一样维护最后一个位置。如果在第jjj个点设fif_ifi​为当前iii到jjj的答案,那么如果没有平方,显然可以对于每一个最后一个点lastlastlast,将111到lastlastlast都加上111。查询时区间查询即可。可现在是平方和,我们知道(x+y)2=x2+2xy+y2(x+y)^2=x^2+2xy+y^2(x+y)2=x2+2xy+y2那么直接维...

2020-04-25 12:33:44 291

原创 luogu P6476 [NOI Online 2 提高组]涂色游戏color

题面传送门考虑一下,其实只要管一个两个倍数点到另一个两个倍数点就好了。设p1<p2p_1<p_2p1​<p2​贪心一下,发现两个倍数点都赋值p2p_2p2​就是最优的。对于任意一个p2p_2p2​的倍数点,任意一个p1p_1p1​的倍数点距离他不超过gcd(p1,p2)gcd(p_1,p_2)gcd(p1​,p2​),且必定有一个点在这个位置。所以就可以根据这个最优位置...

2020-04-25 12:26:29 320

原创 CF103D Time to Raid Cowavans

题面传送门显然可以数据分治啊。对于k>nk>\sqrt nk>n​时,珂以跑暴力,单次复杂度不超过n\sqrt nn​对于k<nk<\sqrt nk<n​,珂以离线对每一个kkk跑一遍O(n)O(n)O(n)的预处理,将所有的kkk处理出来,直接调用即可。每次均摊复杂度O(n)O(\sqrt n)O(n​)总复杂度O(nn)O(n\sqrt n)O(nn...

2020-04-24 20:54:20 110

原创 luogu P3694 邦邦的大合唱站队

题面传送门挺入门的状压dpdpdp题。先枚举状态,然后枚举最后一个合并的是哪一个,状态转移方程:fi=min(fi−2j+∑k=1n1[ak=j]−∑z=∑s=1m(∑s=1n1[as=s])[i&2s−1]−∑s=1n1[as=j]∑s=1m∑s=1n1[as=s])[i&2s−1]1[az=j])f_{i}=min(f_{i-2^j}+\sum\limits_{k=1}^...

2020-04-23 13:39:21 115

原创 luogu P1295 [TJOI2011]书架

题面传送门一倒蛮好的dpdpdp题。nnn方dpdpdp谁都会打,状态转移方程fi=min(fj+max(ak))f_i=min(f_j+max(a_k))fi​=min(fj​+max(ak​)),其中j≤k≤ij\leq k\leq ij≤k≤i,fs≤j≤ifs\leq j\leq ifs≤j≤i,fsfsfs满足∑s=fsias≤m&&∑s=fs−1ias>m\s...

2020-04-22 11:01:32 155

原创 luogu P4113 [HEOI2012]采花

题面传送门和HH的项链那道题有点像。将所有询问离线,按右端点排序。维护每种颜色最近出现的和第二近出现的。当加入一种颜色时,将其第二近出现的删掉,使原来第一出现的变为第二出现的。然后来了一个询问,查询比他大的数的个数就是答案,树状数组或线段树或平衡树随便维护一下就好了。代码实现:#include<cstdio>#include<algorithm>using ...

2020-04-22 08:28:44 148

原创 luogu P3205 [HNOI2010]合唱队

题面传送门一道蛮好的区间dpdpdp。设fi,j,0f_{i,j,0}fi,j,0​表示最后一个人从左边进来的方案数,fi,j1f_{i,j1}fi,j1​表示从右边进来的方案数,分类讨论一下就好了。代码实现:#include<cstdio>#define mod 19650827 using namespace std;int n,m,k,a[1039],f[1039]...

2020-04-22 08:23:25 116

原创 luogu P3604 美好的每一天

题面传送门蛮好的一道题目。考虑状压。对原数列做前缀和,每一位代表是奇数个还是偶数个。那么前缀和亦或就可以得到一个区间。对于一个区间,只有亦或和是000或2k2^k2k时才能构成回文串。那么莫队增加和修改时枚举kkk即可。注意前缀和要往前一位。时间复杂度O(26nn)O(26n\sqrt n)O(26nn​)注意常数不要太大。代码实现:#include<cstdio>#...

2020-04-20 12:00:06 138

原创 CF1304E 1-Trees and Queries

题面传送门EEE题居然还能放这种水题。这样走只有三种走法。x−>yx->yx−>yx−>a−>b−>yx->a->b->yx−>a−>b−>yx−>b−>a−>yx->b->a->yx−>b−>a−>y分别求LCALCALCA即可。代码实现:#include...

2020-04-18 13:31:22 134

原创 luogu P3698 [CQOI2017]小Q的棋盘

题面传送门貌似弱省省选不咋地。考虑贪心,折返走要两倍的步数,而最后一次仅需一倍的步数。首先dfsdfsdfs求出最长链,然后将步数尽量给最长链,剩下的步数给往返走。注意不能超过nnn。代码实现:#include<cstdio>#include<cstring>#define max(a,b) ((a)>(b)?(a):(b))#define min(...

2020-04-18 13:28:05 120

原创 luogu P5355 [Ynoi2017]由乃的玉米田

题面传送门Ynoi虐我千百遍,我待sjjg如初见话说YnoiYnoiYnoi真是毒瘤,不开寄存器居然过不去。这道题前三问可以从小清新人渣的本愿过来,开个bitsetbitsetbitset暴力乱搞就好了。主要是第四问。考虑暴力乱搞(这还要考虑?),那么x=1x=1x=1的时候复杂度将会很高,达到了nw\frac{n}{w}wn​。考虑优化。采用数据分治,将第四种运算中的x≤sx\...

2020-04-17 16:18:48 208

原创 CF2B The least round way

题面传送门其实蛮简单的,不应该有蓝题。只要找到最小的555和222即可。但是注意要特判000代码实现#include<cstdio>#define min(a,b) ((a)<(b)?(a):(b))using namespace std;int n,m,k,s,tx,ty,a[1039][1039],b[1039][1039],z1[1039][1039],z2...

2020-04-16 09:33:00 98

原创 qzezoj 1588 队列重构(加强版)

题面传送门909090分做法见这里正解是线段树+分治。我们尝试在线段树上跑分治,则维护线段树每个节点的有几个位置没被选两边跑分治就好了。代码实现:#include<cstdio>using namespace std;int n,sum[4000039],now[1000039],a[1000039],b[1000039];inline void read(regist...

2020-04-11 16:31:06 134

原创 qzezoj 1588 队列重构(加强版)90分做法

题面传送门707070分做法参考这篇博客考虑在707070分做法上优化。707070分是一个一个找的。我们可以用树状数组维护序列aia_iai​为iii之前有几个位置被占了。则当i<ji<ji<j时,ai≤aja_i\leq a_jai​≤aj​,这满足二分的性质,所以我们可以二分找位置。时间复杂度O(nlog2n)O(nlog^2n)O(nlog2n)代码实现:#...

2020-04-10 20:13:19 127 1

原创 CF940F Machine Learning

题面传送门这道题我也是醉了。先离散化,离散完之后上带修莫队板子求mexmexmex基本上就好了。啥?你问我带修莫队怎么打?带修莫队比普通莫队基础上加上一维时间轴。分块大小为n23n^{\frac{2}{3}}n32​,总复杂度为O(n53)O(n^{\frac{5}{3}})O(n35​)。那mexmexmex怎么统计呢?如果这个mexmexmex是按秩序分布也就是最坏情况,那么设分布...

2020-04-10 13:33:12 112

原创 qzezoj 1592 三角形计数

题面传送门题目告诉我们,没有三点共线,所以我们可以容斥。两条线,x,yx,yx,y相等,即平行。那么我们可以用总可能数-222条直线平行-333条直线平行。用hashhashhash来判断平行线。代码实现:#include<cstdio>#include<cstring>#include<cmath>#define mod 600017usin...

2020-04-09 13:08:47 97

原创 CF1329A Dreamoon Likes Coloring

题面传送门作为div1div1div1的第一题,还是偏水的。这题明显是个·构造。先判无解,则铺不满是无解,铺过头了也是无解。那么接下来就很好构造了。刚开始让每个区间完全平铺,然后等到每个区间只有一个时,改成一个一个铺。代码实现:#include<cstdio>using namespace std;int n,m,k,f[400039],sum[400039],x,y,...

2020-04-08 20:27:00 202

原创 qzezoj 1591 序列询问

题面传送门看数据范围,对于 100%100\%100%的数据 1≤n≤105,1≤Ai ≤109,1≤m≤1051 \leq n \leq 10^5, 1 \leq A_i \leq 10^9, 1 \leq m \leq10^51≤n≤105,1≤Ai​ ≤109,1≤m≤105 ,可能是O(nlogn)O(nlogn)O(nlogn)或O(nn)O(n\sqrt n)O(nn​),再看开了两...

2020-04-08 15:36:47 123

原创 qzezoj 1590 买玩具

题面传送门我们可以尝试贪心。这个问题满足二分性质,即如果iii天能买到,i+1i+1i+1天一定能买到,所以我们可以二分。预处理一个maxnaimaxna_imaxnai​表示美元在前iii天的最低汇率。英镑同样。把美元和英镑买的玩具分开,分别排序。在验证是用双指针就可以做到O(m)O(m)O(m)验证。时间复杂度O(mlog2n)O(mlog^2n)O(mlog2n)代码实现:#...

2020-04-07 13:54:50 133

原创 qzezoj 1589 好元素

题面传送门考虑用哈希折半搜索来解决。观察以下原式am+an+ap=ai,m,n,p<ia_m+a_n+a_p=a_i,m,n,p<iam​+an​+ap​=ai​,m,n,p<i考虑移项得到am+an=ai−ap,m,n,p<ia_m+a_n=a_i-a_p,m,n,p<iam​+an​=ai​−ap​,m,n,p<i,那么两边就可以分别枚举了。代码实现:...

2020-04-06 17:15:35 122

原创 luogu P3376 【模板】网络最大流

题面传送门这道题可以用EKEKEK算法来解。啥?你问我EKEKEK是啥?我们可以尝试着用爆搜来打网络流,可是无疑会TTT爆搜的慢体现在哪里呢?爆搜走了很多重复的路。这时EKEKEK算法的精髓就可以出来了。EKEKEK算法对于每一条边sss建一条反向边s1s1s1,并满足s+s1=ws+s1=ws+s1=w。这条反向边有着断边和连边的作用。我们可以一直跑bfsbfsbfs找源点和汇点之间...

2020-04-06 14:41:16 120

原创 luogu P3931 SAC E#1 - 一道难题 Tree

题面传送门考虑用树形dpdpdp来解。则设fif_ifi​为让iii节点的子树的叶子节点被封锁的最小值,那么fi=min(w,∑(i,j)∈Efj)f_i=min(w,\sum\limits_{(i,j)∈E}{f_j})fi​=min(w,(i,j)∈E∑​fj​)跑一遍dfsdfsdfs就可以求出答案时间复杂度O(n)O(n)O(n)代码实现:#include<cstdio&...

2020-04-06 14:34:20 125

原创 luogu P4462 [CQOI2018]异或序列&&CF617E XOR and Favorite Number

题面传送门不知道你看没看出来这里有两个链接啊。题目叫我们求子串,就很容易想到前缀和,异或又是拥有前缀和性质的,所以就可以用莫队来求啦。记录fif_ifi​为iii这个数出现的次数,那么莫队的前移后移就可以通过k⨁alk⨁a_lk⨁al​来转移。顺序很重要!!代码实现:#include<cstdio>#include<algorithm>#include&lt...

2020-04-04 13:27:13 111

原创 luogu P3709 大爷的字符串题

题面传送门看上去很玄学的亚子。我们很容易发现,要想rprprp最大,要让每次取出的都是一个严格上升的序列,则原问题转换成最少取几次。那么对于有viv_ivi​的一个数,一定要取viv_ivi​次才能取完。则答案为区间内最多的数。则变成了求区间众数。那么可以用莫队求区间众数,开一个fif_ifi​数组记录iii这个数有几个,sis_isi​记录有iii个的数有几个,用二重辅助来求解。代码实...

2020-04-03 17:13:37 116

原创 qzezoj 1585 队列重构

题面传送门对于这道题,正着枚举是很难枚举的,但我们可以反着来。俗话说得好,正难则反。考虑最小的一个数hih_ihi​,则所有数都是大于等于它的,所以它的排位应该是在viv_ivi​。考虑第二小的数hjh_jhj​,则除了hih_ihi​没有其他数小于它,所以我们可以直接找到除了viv_ivi​外的第iii位,它的答案就是在那里。以此类推。所以我们可以将所有二元组按hih_ihi​排序。...

2020-04-03 12:42:40 139

原创 qzezoj 1584 数字序列

题面传送门考虑把两个操作合并,会发现把每444个分为一组,会剩下第333个。则我们可以很容易地推出递推式:fx=4×fx+14−1f_{x}=4\times f_{\frac{x+1}{4}}-1fx​=4×f4x+1​​−1则我们就可以很容易地找到最后剩下的位置了。那么根据位置求数字就很简单了。代码实现:#include<cstdio>#include<cmath...

2020-04-03 09:30:43 127

原创 luogu P2233 [HNOI2002]公交车路线

题面传送门题号好评。这道题状态不难想,就是设fi,jf_{i,j}fi,j​为第iii个站点换了第jjj次车的方案数。一般的转移方程为fi,j=fi−1,j−1+fi+1,j−1f_{i,j}=f_{i-1,j-1}+f_{i+1,j-1}fi,j​=fi−1,j−1​+fi+1,j−1​空间爆了。我们注意到,AAA和EEE是两个对称的点,所以我们可以把它对称成两部分,空间减小一半,如果你卡...

2020-04-02 17:34:20 170

原创 CF399B Red and Blue Balls

题面传送门这道题…真的无语了。一眼看上去这道题似乎可以状压dpdpdp,只有LLL和RRR两种,然后我手算把样例转成了二进制,准备推转移方程,结果惊奇的发现RBR=(101)2=2RBR=(101)_2=2RBR=(101)2​=2,这不就是样例的答案吗?接着推了第二个样例的答案,居然也对了。言归正传,那么我们设fif_ifi​为把iii以及其上面的全部翻转为红色的步骤数,那么显然,如果ai...

2020-04-01 21:10:48 150

原创 luogu P4095 [HEOI2013]Eden 的新背包问题

题面传送门题目的询问是互相独立的,这一点给了我们思考的空间。我们可以用单调队列优化多重背包做正反两趟背包,然后对于询问用dp1di−1,k+dp1di−1,ei−kdp1_{d_{i}-1,k}+dp1_{d_{i}-1,e_i-k}dp1di​−1,k​+dp1di​−1,ei​−k​来拼,其中0≤k≤ei0\leq k\leq e_i0≤k≤ei​,取最大值。代码实现:#include...

2020-04-01 12:18:13 137

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除