2024 暑期模拟赛 #2
怎么 swap(min(B,C),D) /wx
2024暑期CSP-S&NOIP模拟赛第2套
时间:4h (2025.10.22 14:00~18:00)
题目数:4
难度:
| A | B | C | D |
|---|---|---|---|
| \(\color{#F39C11} 橙\) | \(\color{#52C41A} 绿\) | \(\color{#52C41A} 绿\) | \(\color{#52C41A} 绿\) |
| *1100 | *1700 | *1700 | *1800 |
估分:100 + 60 + 50 + 100 = 310
得分:100 + 60 + 50 + 100 = 310
Rank:1/6
场祭
读题。
A 签,5min 切掉了。
开 B,发现不怎么会。于是开 C,似乎是线段树状物,但是好像不怎么会维护,嗯。开 D,欸这不直接最值分治就好了?然后发现在数集 \(S\) 里统计满足 \(x \in S \land a \oplus x \le b\) 的 \(x\) 个数似乎不怎么好做,\(b\) 全是 \(1\) 的时候会导致遍历整棵 01trie,所以就不会了。
回去看 C,感觉应该比 B 可做一点,发现似乎能开线段树维护每个位置前面第一个 \(x \in [1,k]\) 的位置,发现真的可以维护的!于是写写写,测样例发现不过,哦哦哦我没维护答案()然后发现答案好像很不好维护,想了半天无果,还剩 2h 的时候扔掉了。
打暴力!C 60pts,B 50pts,给的很足,好评!
C 甚至 \(k \le 3\) 的特殊性质都没想出来。
继续看 D,觉得应该是对的啊……然后发现这不很能维护嘛(,直接在 01trie 上搞一个二分状物就可以了,写写写,大样例没过!瞪了 10min 没瞪出来,于是快速打了个暴力去拍一拍,发现怎么一个区间被处理了两遍?哦某个地方应该是 >= 而不是 >,改了就过了。
剩 10min+,感觉什么都干不了了,但实际上确实什么都干不了了。
补题
补 B,怎么想到的还能构造 /jk
因为如果能类似于特殊性质,把答案串构造出来,那么代价是好算的,所以考虑直接构造,令 \(f_{i,j,k,0/1/2}\) 为分别用了 \(i,j,k\) 个 \(0,1,2\),且最后一位是 \(0/1/2\) 的方案数,转移是平凡的,就做完了(
根据实现方式,如果是直接按照位置差来计算代价增加量,最后答案需要除以 \(2\),因为当把 \(s_i\) 换到 \(s_j\) 的时候,\(s_j\) 同时也换到了 \(s_i\),这样代价就会计算两倍,即使是形成了多元环也是一样的。
补 C,草怎么这么简单,直接线段树维护区间第一次出现 \(x \in [1,k]\) 的位置和最后一次出现的位置,然后发现就很能算答案了。。赛时一直在想维护区间内的点前面第一个 \(x\) 的位置就不去想想维护区间整体的信息我是【】吧。。
只不过代码有一点石就是了。/tuu
天依宝宝可爱!

浙公网安备 33010602011771号