把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

04 2021 档案

摘要:题面传送门 为什么所有题解要用g帮助转移啊,我觉得不用吧…… 随便画画图就可以发现这个一定是从起点向左走一段然后再向右不回头走再向左走一段。 然后前后两端都可以用字符串哈希搞掉。 然后中间dp即可。 具体转移因为不会回来走所以枚举前一行转移即可。 时间复杂度O(nm) code: #incl 阅读全文
posted @ 2021-04-25 19:10 275307894a 阅读(43) 评论(0) 推荐(0) 编辑
摘要:题面传送门 显然有一个O(n2klogn)的dp状态就是设fi,j为分了i次,到了j的最小无序度,用树状数组维护一下即可。 然后把这个东西转到二维平面上看就显然有决策单调性。 但是这个转移不能直接计算所以没有办法直接决策单调性。 因为当前层不用这一层而直接用下一层,所以可以用分 阅读全文
posted @ 2021-04-24 15:27 275307894a 阅读(76) 评论(0) 推荐(0) 编辑
摘要:题面传送门 显然有一眼O(n2k)的dp:设dpi,j为分了i段,分到第j个时的最小值。 那么可以O(n)暴力转移。 因为每种颜色相互独立,所以我们对每种颜色分别考虑。 如果[i,j]中有x个,[i,j]中有y个,[i,j]中有z个,那么$[ 阅读全文
posted @ 2021-04-24 08:32 275307894a 阅读(49) 评论(0) 推荐(0) 编辑
摘要:题面传送门 其实这道题可以写得很短的。而且跑得飞快,目前没有手动编译优化第一。感觉完全没有黑题。 如果我们设dpi,j为到了第i个基站,当前到了第j个点时候的最小价值。 那么显然我们有dpi,j=mindpi1,k+w(k+1,j),$w(i 阅读全文
posted @ 2021-04-20 21:01 275307894a 阅读(66) 评论(0) 推荐(0) 编辑
摘要:题面传送门 看到数颜色就可以想到要用分块。 然后把正解想出来然后复杂度算错 然后发现我们有两种方法: 第一种,将每个颜色都建成并查集然后直接查询,这个是O(nq)的。 第二种,将每种颜色内的暴力匹配扔到map里,然后对于每个询问查询。这个是O(n2logn+qlogn)的。 然后想到将两个 阅读全文
posted @ 2021-04-18 13:34 275307894a 阅读(68) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这个轮换的东西线段树显然不好搞。 万能的分块其实是更好的选择。 这种统计个数的肯定是每个块开桶记录有几个。 那修改操作就是把每个块尾巴那个元素拿出来接到后一个块开头。然后把最后一个元素删掉放到第一个元素的位置。 不难发现这个用deque就可以很好地解决。修改是顺便维护一下桶即可。 这个问 阅读全文
posted @ 2021-04-17 21:02 275307894a 阅读(135) 评论(0) 推荐(0) 编辑
摘要:题面传送门 首先这个是2000年的IOI所以没有什么wqs二分。 设dpi,j为到了i,已经有了j个邮局的最小距离和。 显然有方程式dpi,j=mindpk,j1+w(k+1,i),其中w(i,j)\(\)[i,j]区间内村庄建立一个邮局的最小距离 阅读全文
posted @ 2021-04-17 20:52 275307894a 阅读(38) 评论(0) 推荐(0) 编辑
摘要:题面传送门 一看到效率就感觉像是分数规划。 然后这个东西又可以二分。 所以应该是二分寻找答案。 那么怎么看mid是否可以呢? 看到n很小想到可以O(n3) 首先floyd预处理出两点之间距离。 然后再O(n2k)暴力枚举得到两点之间最优的值。 那么二分一个答案之后把每条边边权设为$w 阅读全文
posted @ 2021-04-17 14:34 275307894a 阅读(27) 评论(0) 推荐(0) 编辑
摘要:题面传送门 不是很理解陈指导为什么没切掉这道题。 把这个东西分成两端处理,即[x,lca]\(\)[lca,y],因为收集器中宝石种类不一样所以这个lca被算重了是没有关系的。 前面一个我们可以预处理出对于每一个节点它最近的后一个在什么地方,然后对于每个点找到最近的第一个然后在树上倍增即可 阅读全文
posted @ 2021-04-17 11:10 275307894a 阅读(94) 评论(0) 推荐(0) 编辑
摘要:题面传送门 看到数据范围想到可以状压。 然后以为是b的分配方式看着题目想了好久始终没有想到怎么把O(m)的枚举转移去掉。 设fi,j,k表示当前到了第i个队伍,集合为jb总量为k 发现这样子其实还是要枚举转移。 考虑怎么有最优分配方案,显然每个都给最少是最优的。设 阅读全文
posted @ 2021-04-17 09:36 275307894a 阅读(101) 评论(0) 推荐(0) 编辑
摘要:题面传送门 居然省选出这么简单的题目。 首先显然这个东西有单调性所以可以二分。 然后考虑这个东西怎么验证。 首先因为a升序所以可以直接在a上面找范围。 考虑确定左端点l则右端点r很好确定。 我们无非要确定两件事情:翻的数量有没有超过m,翻完之后有没有出现不在范围内的情况。 前面那 阅读全文
posted @ 2021-04-16 21:05 275307894a 阅读(137) 评论(1) 推荐(0) 编辑
摘要:题面传送门 设dpi,j为到了i个人,走了k条船的最小沮丧度之和。 然后就可以发现这个是O(n2)的过不去。 其实把图画出来就可以发现满足四边形不等式,旁边要多两块矩形。 所以可以直接上决策单调性优化了。 时间复杂度O(nklogn)有点卡常。 code: #includ 阅读全文
posted @ 2021-04-15 21:02 275307894a 阅读(63) 评论(0) 推荐(0) 编辑
摘要:题面传送门 先把最小生成树跑出来。 对于一条非树边显然就是最小生成树上面倍增一下就可以找到答案。 但是对于最小生成树树边很难做。要枚举所有非树边。 换个思路,找到所有非树边然后在最小生成树上zyq倍增即可。 时间复杂度O((n+m)logn),树剖两个log可能过不去。 code: #inclu 阅读全文
posted @ 2021-04-15 20:10 275307894a 阅读(64) 评论(0) 推荐(0) 编辑
摘要:题面传送门 首先如果mn那么一直用最大的食材搞就可以了,显然最大的食材一定大于k 然后m=n1怎么搞 把d排序,然后显然可以用最小的和最大的来凑出k,显然成立。 这样子每次n减一,m减一直到n=2m=1就可以随便构造了。 但是数据范围还有个$m=n- 阅读全文
posted @ 2021-04-13 20:34 275307894a 阅读(55) 评论(0) 推荐(0) 编辑
摘要:2020年2月27日: luogu P3870 [TJOI2009]开关 线段树模板 CodeForces 1313C1 结论+模拟 CodeForces 1313A 结论 luogu P2306 被yyh虐的mzc 思维+单调队列/二进制优化多重背包 2020年2月28日: luogu P3197 阅读全文
posted @ 2021-04-10 22:29 275307894a 阅读(1758) 评论(6) 推荐(0) 编辑
摘要:题面传送门 一种奇奇怪怪的rmq做法。依赖于数据随机。 首先对序列分S块,然后处理块内前后缀max,处理块间st表。 然后查询的时候块间stO(1)\(\)max查询。可以做到O(1) 但是有一个问题就是在同一块中没法做。只有暴力。 但是数据随机所以落到同 阅读全文
posted @ 2021-04-10 22:28 275307894a 阅读(138) 评论(0) 推荐(0) 编辑
摘要:题面传送门 蛮好的一道dp题。 显然设dpi为到i的方案数。设f(l,r)\(\)[l,r]区间内出现一次的个数,那么有方程dpi=f(j+1,i)k 这样是O(n2)的看上去没法优化。 考虑数颜色的套路就是维护前面最近的。设其为$p 阅读全文
posted @ 2021-04-10 21:28 275307894a 阅读(54) 评论(0) 推荐(0) 编辑
摘要:题面传送门 不得不说原题数据是真的水,先是一个负号没打,然后数据范围看错还过。 首先为了确保一定的单调性,要把所有边按开始时间排序。这个可以用桶排。 然后设dpi为走了第i条边最小的烦躁值。 那么显然有方程式$dp_i=\min\limits_{dp_j+A(p_i-q_j)2+B(p_i 阅读全文
posted @ 2021-04-10 19:35 275307894a 阅读(65) 评论(0) 推荐(0) 编辑
摘要:题面传送门 还好的一道题吧。 首先显然可以状压dp 然而我们发现我们根本不需要知道这个的具体的情况,换而言之,两列交换对是否可以没有影响。 所以我们可以设fi,j,kij个列1个,h个列两个,转移时分类讨论一下即可。 时间复杂度O(nm2) code: #incl 阅读全文
posted @ 2021-04-09 22:29 275307894a 阅读(40) 评论(0) 推荐(0) 编辑
摘要:题面传送门 sin和看上去很难维护。 但是如果你上过高一(大概?)的和差角公式就可以很轻松地解决。 sin(a+x)=sinacosx+sinxcosa cos(a+x)=cosacosxsinasinx 写个结构体就可以用线段树维护了。 时间复 阅读全文
posted @ 2021-04-09 21:07 275307894a 阅读(54) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这种东西显然不太好做。 所以考虑使用万能的分块。 对询问分块,每k个一块,然后我们发现,对于每个块中只有\frac条边被修改,所以可以暴力加入并查集。 然后对于每个块将询问和不被修改的边都按边权排序然后尺取出相应的边计入并查集即可。算完联通块大小以后要回退。 k取$\sqrt 阅读全文
posted @ 2021-04-09 20:41 275307894a 阅读(40) 评论(0) 推荐(0) 编辑
摘要:题面传送门 用SA做起来是很妙的一道题可惜我不会 智商不够可以拿自动机来凑。 反向建立SAM,则每两个后缀的lcp就是lca。 对于每个节点用子树合并。注意有负数所以要存最大和最小值。 然后后缀和一遍即可。 时间复杂度O(n) code: #include<cstdio> #include<al 阅读全文
posted @ 2021-04-06 20:44 275307894a 阅读(55) 评论(0) 推荐(0) 编辑
摘要:题面传送门 题面概述:给定s序列,满足对于所有1i<nsisi+1,求L(sisj) 然后你会发现一个很有趣的数据范围:\(s_i\leq 10^ 阅读全文
posted @ 2021-04-06 19:35 275307894a 阅读(96) 评论(0) 推荐(0) 编辑
摘要:题面传送门 很妙的一道题啊。 这道题看上去很不可做。 然而我们发现ai70 然后我们又发现一些数的乘积为完全平方数那么所有质因数的次数都是2的倍数。 那么我们可以把所有质因数状压起来扔到线性基里。 线性基外面的全部都是能表示的。 设线性基内元素个数为cnt,则答案为$2^-1 阅读全文
posted @ 2021-04-05 16:25 275307894a 阅读(49) 评论(0) 推荐(0) 编辑
摘要:题面传送门 完全没有紫题难度吧qwq 看到时间这么小考虑枚举最后的结束时间,那么维护两个前缀和分别表示前后能要换的天数然后分类讨论即可。 但是还要开ull是没有想到的。 时间复杂度O(n) code: #include<cstdio> #define ull unsigned long long 阅读全文
posted @ 2021-04-05 13:47 275307894a 阅读(45) 评论(0) 推荐(0) 编辑
摘要:题面传送门 居然一遍过我太惊讶了。 首先,题目中那个期望是假的,实际要求出现次数。 然后你会发现对于一个x,答案不会超过\frac 那么总的答案就是O(nlogn) 你会发现这个n其实和m不同阶,这个n甚至两个log都可以过。 如果我们对于每一个答案的增加然后树状数组维护一下 阅读全文
posted @ 2021-04-05 13:05 275307894a 阅读(53) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这个可真的难写,几个月前就想出来怎么做了直到今天才花了3个小时写掉。 首先显然可以树套树优化建图达到O(nlog2n)的时空复杂度。 但是发现这个居然卡空间。 所以我们可以不把边建出来而模拟dijkstra的过程。 我们只需要维护三个操作:删除一个点,给一个区间取min,求全局 阅读全文
posted @ 2021-04-04 22:16 275307894a 阅读(60) 评论(0) 推荐(0) 编辑
摘要:题面传送门 什么时候ZJOI能像SHOI那样啊qwq 显然一个凸包转了一圈,每个转弯的地方都是圆弧,所以直接把圆弧扔了求圆心凸包然后加上一个圆的周长即可。 然而这道题是真的坑。 首先是先读入竖直再水平,然后还有精度问题。 code: #include<cstdio> #include<cmath> 阅读全文
posted @ 2021-04-04 18:57 275307894a 阅读(36) 评论(0) 推荐(0) 编辑
摘要:题面传送门 鸽了大半个月了回来补掉了这道题。 按照坐标轴排序的比极角序不知道好写多少啊。 首先按照x为第一关键字,y为第二关键字排序。 然后用叉积判断当前栈内的点和要入栈的点的位置关系,如果顺时针就弹掉。 然后这样可以构造出下凸壳。再来一遍构造上凸壳即可。 code: #include<cs 阅读全文
posted @ 2021-04-03 22:36 275307894a 阅读(46) 评论(0) 推荐(0) 编辑
摘要:题面传送门 不得不说这题是真的暴力。 我们发现这个东西不是NTT模数很难搞怎么办呢? 我们联想到万能的FFT,这个东西不需要模数。 但是中间不能取膜,实际上答案会大于longlong 那么我们可以把它拆开。拆成a×215+b的形式就可以做了。 然后我们其实要求这个东西$a_1b 阅读全文
posted @ 2021-04-03 16:03 275307894a 阅读(54) 评论(0) 推荐(0) 编辑
摘要:题面传送门 写了一个晚上才写完+调完,AC那一刻感觉神清气爽。 询问某一个串在另一个串内出现了几次想到AC自动机,但是因为强制在线而AC自动机无法动态更新fail树所以考虑SAM 然后发现我们只要动态维护LCT虚子树大小即可。 然而虚子树大小其实挺难维护的,所以可以改成每个点的链加。 时间复杂度$O 阅读全文
posted @ 2021-04-02 22:11 275307894a 阅读(41) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2021-04-02 21:59 275307894a 阅读(0) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2021-04-02 21:59 275307894a 阅读(2) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2021-04-02 21:58 275307894a 阅读(0) 评论(0) 推荐(0) 编辑
摘要:题面传送门 考试时写树套树结果没写完一分没有。靠暴力水了20分。 首先肯定要b,d分开讨论。 如果b>d显然先将所有a插入字典树然后把(c,d)这一组拿去查即可。 考虑b<d怎么做。发现如果将c插入,(a,b)当做询问插入其实是一样的,所以先将每个二元组插进去然后查询 阅读全文
posted @ 2021-04-01 20:37 275307894a 阅读(60) 评论(0) 推荐(0) 编辑

浏览器标题切换
浏览器标题切换end
点击右上角即可分享
微信分享提示