2018 ICPC 青岛 训练赛

本文解析了2018年青岛区域赛的训练赛题目,涵盖多种算法和策略,如枚举、二分搜索、构造方法、动态规划等,详细解释了C、D、E、F、J、K、L、M题目的解题思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2018 青岛区域赛【训练赛】题解&总结

C 当连续的1出现3段以上时,一定不合法,方案数为0。出现两段时。方案数为6。出现一段时,有两种可能,第一种是两个区间拼起来,方案数为段的长度\(len\),第二种是两个区间作差。方案数为\(n-len\)

D 枚举\(a\)的首位,那么\(b\)序列就会被唯一地确定下来。然后我们再逐位确定\(a\)序列。

E 二分答案

F ?构造的

J\(m\)个值,必须拿,因此首先要有\(\sum_{i=1}^{m} a[i]\)的金币。剩余的金币最大值为,为\(m+1\)到第\(n\)的最小值减1.

K 枚举分界线\(x_0\)。分界线左边和右边的人相互独立,我们分别求解。考虑左侧,拿出来两个人。如果这两个人满足到\((x_0,y_0)\)曼哈顿距离相等,那么他们就会碰撞。但是多个人的时候,我们要考虑碰撞的先后顺序,有可能A,B,C到\((x_0,y_0)\)曼哈顿距离相等,但\(A,B\)先碰撞了,那样C就活下来了。我们按横坐标从左到右施展。并用set维护前缀是否有\(|y-y_0|-x=A\)的人走了过来。需要注意的一个地方是,分界线可以和不和任意一个人横坐标相等。

L 先是一些特判.当\(m>n\)方案数为0,当\(m=n\)方案数为\(\frac{(n-1)!}{2}\)。当\(m=0\)方案数为1。我们先枚举\(n\)的排列,然后选择\(n-m-1\)条边剪断,那么我们就会得到\(n-m\)条链。我们先求出\(n-m\)条链的排列。枚举这\(n-m\)条链中,长度大于1的链的个数\(x\),那么这样同一种排列方案会被统计\(2^x\)次。求出排列后除上\((n-m)!\)就是组合了。

M 签到题,\(f\)下降得十分迅速,做迭代,最后结果会在0和1之间循环,判断奇偶性就好了。

转载于:https://www.cnblogs.com/RUSH-D-CAT/p/9950281.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值