CF 杂记

或许CF比AT要可做一些吧

“*” 表示看题解。“(*)” 表示大多是自己想出来的。


*CF1774F1 Magician and Pigs (Easy Version)
rnm怎么全网都是一个做法。

你考虑到可以先建一棵主席树,一个复制就相当于是多出了原来数列每一项减去了一个定值。那么你妈的伪了。

考虑如果有减操作,且前面有数最后还活着,那么后面只会有不超过 logV 次复制。


*CF850F Rainbow Balls
毫无头绪。


CF1775F Laboratory on Pluto
先来看什么时候会最优。可以想到答案为 2(a+b)a 为长,b 为宽)。合法的条件为 abn。所以正方形最优,a=n

等等,好像不一定正方形最优。有时 n×(n1) 优于 n×n,反正大概枚举一下就行了。

于是 u=1 便解决了。方案的话枚举所有的长宽是 O(n) 级别的。考虑四个角损失的总量为 abn,也是 n 级别的。由于此时周长最小,肯定不会出现挖去某几个角就少了一行或一列的情况,所以直接卷起来即可。

具体地对于某个角,空行/空列的大小肯定是单调递减的,用一个简单 dp 预处理即可。

时间复杂度:O(nn)。跑不满。


CF1768E Partial Sorting
感觉交换次数不会超过三次,简单云一下发现确实如此。

交换次数为 0 次的方案数为 1

交换次数为 1 次的方案数为 2((2n)!1)

交换次数为 2 次的方案数为 i=0n(ni)

咕咕咕。。。


*CF1786F Wonderful Jump
这个题好牛逼。

首先有一个思路是笛卡尔树或者cdq什么的搞一下,但是好像都行不通。

先把暴力dp写出来吧:dpj=min{dpi+min{ai,ai+1,...,aj}(ji)2}

好像也没有决策单调性(不满足四边形不等式?)

考虑如果从 i 转移到 jmin{ai,ai+1,...,aj}(ji)2n(ji)。(因为 a 数组的值域是 n

min{ai,ai+1,...,aj}nji

这个除以 ji 使我们想到根分。

jin 时,暴力转移即可。

ji>n 时,有一个引理:若 ji,则 min{ji}=aj or ai。当 minaj 时,像前面枚举即可。当 minai 时,主动向后面转移即可。

注意要向后面转移,所以循环从 1 开始。


(*)CF1731F Function Sum
注意这是随便取求方案数,所以可以每一个位置独立计算贡献。

你不妨就多枚举点东西

num=1ni=0num1j=0nnum[i<j](num1i)(nnumj)val=1k(val1)i(kval)j(kval+1)num1ivalnnumj

由于 k 很大,前三个 直接枚举,最后那个插值即可。时间复杂度:O(n4logn)


posted @   Saintex  阅读(44)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示