luogu蓝桥5_19
B. 停车场
P10509 停车场 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题意
你有一片空地。这片空地可以视作一个一个 𝑛×𝑛 的正方形。空地外一圈为墙壁,你无法拆除它们。
现在你要在这片空地上规划停车位,使之成为一个停车场。你希望空地的左下角是停车场的出入口。出入口不能规划为停车位。空地和停车位都是 1×1的正方形,且正方形的每条边与墙壁平行或者垂直。
每个停车位都应该与至少一个空地四连通(即:停车场的上、下、左、右方至少有一个空地),且这个空地应当能通过若干次向上、下、左、右的移动,在不经过任何停车位的情况下到达出入口。
下图为 𝑛=4 时停车位数最多的放置方法之一,其中红色为车位,蓝色为出口,白色为空地。

请问 𝑛=2023 下最多能安排多少个停车位?
题解
这题真是一道神奇而又复杂的题目,我想如果国赛有这种题,可能刚开始心态就会爆炸
云剪贴板 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
洛谷官方对这题做出了非常详细的解释,但赛时证明是在过于繁琐,如果真的蓝桥,万一真有这种情况建议直接放掉这题。
这题的其中一种构造方法非常像“minecraft”里的鱼骨挖矿法即下图第二种

直接构造可得
答案为(2022+2021(6742-1)+67322+3)
D. 方差
P10511 方差 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题意
小 S 认为数学很简单,于是小 R 想要考考她。
小 R 给了小 S 一个序列 l r b
,表示
现在,小 R 有 l r
,想让你查询区间
由于这个数字可能是个小数,小 R 不方便对答案,所以他想要小 S 求出
作为小 S 的好朋友,你能帮帮她吗?
题解
推导一下公式发现结果是
预处理前缀和和前缀平方和,二分查找即可端点所在区间即可。
但一定需要注意多次取模,经过一个小时的鏖战,鉴定为取模题
1 | void slove() { |
E. 序列合并
https://www.luogu.com.cn/problem/P10512?contestId=174155
题意
给定一个长度为 𝑛的非负整数序列 {
形式化地,一次操作中,你选择一个下标
𝑖i(1≤𝑖<𝑛1≤i<n),然后把原序列变成
求 𝑘次操作后所有数按位与的最大值。
题解
首先想到我们需要优先选高位。但此时注意到,对高位的选择也会影响到低位,我们必须考虑一个方式找到一个优的解使得答案最大
注意到合并的数本身代表了一个区间范围内的数,k次操作相当于选出了n-k个区间,如果要求答案为x则区间内的数并集为x,枚举每一个数显然是不现实的,但是我们可以通过二进制枚举来达到效果。
要记得从高到低枚举,因为每次记录t到ans中,我们实际限制了后面的取值。
我觉得比取模题简单
1 | void slove() { |
F. 括号
https://www.luogu.com.cn/problem/P10513?contestId=174155
题意
圆给了你一个长度为 (
和 )
构成。
她会对其做
1 l r
,她会翻转 到 的括号,即(
变)
,)
变(
。2 l r
,她想知道区间 中最长合法括号子序列的长度除以 的答案。
圆认为以下的括号序列是合法的:
空序列是一个合法序列。
如果
A
是一个合法序列,则(A)
也是一个合法序列。如果
A
和B
都是合法序列,则AB
也是一个合法序列。
圆认为,序列
由于操作太多了,她算不过来,请你帮帮她吧。
题解
洛谷真的要吓死我了,第六题线段树
对整个子串建立线段树,节点中维护当前区间左括号和右括号的的数量,合并左右节点即
如何维护交换这一操作呢?
我们对每个节点维护两个不同的节点数据,一个是现在的,一个是假设翻转的。在交换时就交换这两个数据即可。(也可以都拆开成一个一个变量,也是可以的)。
1 | struct node { |
G.考试
https://www.luogu.com.cn/problem/P10514?contestId=174155
题意
有
每个学生的实力是相同的,但是每道题的难度可能不同。第
考试结束后,随机选出
题解
数学题。。。 懒得打公式了,如下

预处理阶乘,快速幂分母时间复杂度为log(m)+n
处理分子时间复杂度为mlog(n)
1 | ll qmi(ll a,ll b,ll mod = MOD){ |
H. 转圈、按钮P4861
https://www.luogu.com.cn/problem/P10515?contestId=174155
题意
小
他有一个圈,被均匀分成了
接下来他会看看脚下踩着的数是多少,然后向前走这么多格。他会一直反复这么做。
求最终被小
题解
这题和P4861撞了,所以我干脆贴这题了
根据欧拉定理
因此
1 | ll qmi(ll a,ll b,ll mod = MOD){ |
预览: