成都集训-test0717
今天的模拟赛太逆天了。
得分:
T1 珠宝
题目描述
有
你有一个空间为
问价值
数据范围 :
思路点拨
我们按照一般的
我们比较一般的背包问题的数据规模和本题的数据规模,本题的物品数量十分庞大,但是物品的空间很小。
我们从物品的空间下手,从
首先,我们可以将这些物品价值降序排序,因为我们在同样的空间下总是会先选价值大的。
接下来,我们对这些物品做前缀和,保存到数组
转移的时候,我们发现,两个状态
所以我们枚举我们要转移的状态
那么我们将形如
这个式子对我们的时间没有任何的优化,但是
所以我们的决策点有单调性,使用分治或者单调队列上二分均可通过。本题还算是比较可做的。
T2 [JOI 2020 Final] 火事
题目描述
给定一个长为
定义
你将对
执行一个操作需要一定的代价,执行第
求每个操作需要的代价。
注意:每个操作都是独立的。
思路点拨
考虑
但是,当我们把
对于一个节点,我们定义
这个平行四边形的顶点分别是
那么每一次询问就是问一个线段
我们可以考虑将一个个平行四边形拆成若干个有规律的部分,使得可以更加方便计算。
一种十分简单的想法就是把一个平行四边形按照横坐标拆成一个个竖线,这样很好处理,但是全部的竖线数量过多。
我们注意到,如果按照纵坐标可以划分成一条条斜线。按照横坐标可以划分成
如何保证线的数量有限,可以利用笛卡尔树一个广为人知的结论
这个式子相当于询问笛卡尔树的每一个节点的左右儿子子树的最小值之和。
我们可以把
每一个节点至多被合并
接下来,我们对于横线和斜线分别考虑。
横线十分简单,将全部询问差分后离线下来就可以扫描线,比较无脑。
斜线不好搞,对于一群在同一条斜线上的点
我们将原平面直角坐标系的点
对于斜线转换后的横线,我们可以如法炮制同样操作。在维护扫描线的时候,考虑到本题时限比较紧张,使用
时间复杂度
T3 Mousetrap
题目描述
有一个有
一个老鼠被放进了迷宫,迷宫的管理者决定和老鼠做个游戏。
一开始,有一个房间被放置了陷阱,老鼠出现在另一个房间。老鼠可以通过走廊到达别的房间,但是会弄脏它经过的走廊。老鼠不愿意通过脏的走廊。
每个时刻,管理者可以进行一次操作:堵住一条走廊使得老鼠不能通过,或者擦干净一条走廊使得老鼠可以通过。然后老鼠会通过一条干净的并且没被堵住的走廊到达另一个房间。只有在没有这样的走廊的情况下,老鼠才不会动。一开始所有走廊都是干净的。管理者不能疏通已经被堵住的走廊。
现在管理者希望通过尽量少的操作将老鼠赶到有陷阱的房间,而老鼠则希望管理者的操作数尽量多。请计算双方都采取最优策略的情况下管理者需要的操作数量。
注意:管理者可以选择在一些时刻不操作。
对于所有的数据,
思路点拨
题目意思比较复杂,所以使用了更为清晰的原题面。
我们为了简化问题,我们将陷阱房作为数的根,这样老鼠就尽量远离根。
我们考虑这只倒霉的老鼠会怎么走。它会一头栽进一个子树然后被自己弄脏的路径困住。
那么在此时,我们伟大的管理员就可以把所有要封死的路径给堵住,最后把老鼠的路径擦干净。
我们先看看在一颗子树中,管理员的操作吧。我们定义
我们考虑类似于数学归纳法的方式求出这个
那么如果管理员无动于衷,老鼠会干什么?肯定会选一个
管理员此时是有一个步骤的,所以他可以把这个最大的
这是因为,我们的老鼠会钻进一个第二大
为什么子树内的边要堵上,有没有可能不堵边更优秀呢?不可能,因为老鼠钻进这条边就至少要擦一条边让他出来。不如花一条边堵上,多一事不如少一事。
对于
其中
但是,老鼠一开始不一定会往自己的子树钻,有可能会走到别个子树钻进去。这是十分复杂的。
注意到答案可以二分,我们对于一个值
bool lis[MAXN];//在s到t的路径上
bool check(int step){
int sum=0;//管理先手
for(int x=s;x!=t;x=dad[x]){
sum++;//我多一步
int ned=0;//这是我需要的步数
for(int i=0;i<e[x].size();i++){
int to=e[x][i];
if(lis[to]) continue;
if(f[to]+g[x]<=step) continue;
if(!sum) return 0;//步数不够,管理员速度不行
sum--;//少了一步
ned++;//这是要堵上的
}
step-=ned;
if(step<0) return 0;
}
return 1;
}
总体时间复杂度
这题太逆天了!
T4 小丑
题目描述
给定一张
思路点拨
我们发现删除操作十分的恶心,考虑转换成添加操作。我们可以将边的数组开两倍,对于一次删除操作
我们可以转换成判断
怎么求解
其实,
发现在分治的过程中,对于每一个分治的段,我们都需要花费大量时间计算并查集。但是,这个并查集可以从分治树的父亲处继承一部分。维护可持久化并查集或者可撤销并查集即可。
时间复杂度
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现