CF1815
CF1815
Div. 1
确实难,Virtual Contest
上只完成了两道题,想出来了三道题。
A. Ian and Array Sorting
秒切题……考虑将前 个数变成一样的一个数 。显然可以完成。
然而考虑此时最后一个数。如果 ,那么是 ,如果 ,要分类讨论:
-
如果前面有奇数个,是 。
-
反之,则是 。
提交:Submission #211291004 - Codeforces
B. Sum Graph
傻逼交互。
好呀好呀,傻逼交互体。想出来了思路,但是就是没有写出来。
考虑 +
点 。那么整个图会形成一条链。
static int perm[N]; int l = 1, r = n;
for (int i = 1; i <= n; ++i) {
perm[i] = (i & 1) ? l++ : r--;
}
于是我们可以在 次以内找到链的一端,然后就可以再来 次找到可能的排列。
由于我们可能是找到的两端,所以有两种排列方法。
输出即可。
提交:Submission #211296415 - Codeforces
进阶:参考 https://codeforces.com/blog/entry/114847?#comment-1021812 以及 Editorial of Codeforces Round #865 - Codeforces,可以把次数减少到 次询问。
C. Between
构造好题。
考虑包含可以形成依赖。
于是可以形成一张图。
我们从 1
开始 BFS
对其分层,可以发现,第 层最多可以放 个(包含依赖多套一个)。
那么考虑如何构造合法方案。
我的方法是每一次,按照 BFS
逆序遍历很多遍,每一次遍历到,如果还有没放的则放一个,否则略过。(好像官方题解就是这样?看不懂)
考虑正确性:按照逆序遍历保证出现次数少的在中间,保证不同层之间的依赖关系;每次放一个保证出现次数相同的交替出现,这样就保证了层内的依赖关系无论如何一定满足(互相依赖也没关系)。
提交:Submission #211298131 - Codeforces
D. XOR Counting
打表好题。
在 的时候答案就是 。
在 的时候小小打表,可以发现答案为 。
证明:在 的时候, 可以恰好凑出 ,所以所有与 奇偶性相同的 (此时 为偶数, 为整数)都可以被凑出。
然后我们发现,加法和异或得到的奇偶性是一样的,并且有 ,意味着我们只能凑 并且与 奇偶性相同的数。
综合两条,我们便可以得出,所有可能凑出的数就是 且与 奇偶性相同的数。
推一下公式就是上面的了。
于是问题就只剩下了 的时候。
我们考虑一个 DP,我们记 表示所有可能的异或和的和, 表示可能的个数。然后稍微分类讨论一下:
-
如果 是奇数,我们不妨假设 ,其中 为偶数, 为奇数。设 。我们可以看出: 以及 。此时个数不会变,而和变为原本的两倍再加上个数。也就是 以及 。
-
如果 是偶数,那么我们又要分两类讨论:
-
设 ,其中两者都是偶数,那么类似的,,。
-
如果都是奇数,有 以及 。
-
因此,我们可以知道 ,以及 。
-
FAKE: 于是我们可以得出递推复杂度 ,得出为 。
依据SMB,复杂度似乎不是这样的,但是题解是这么给的,或许是有一些神秘的分析,或者是加了记忆化,所以复杂度是这样的。
其实完全可以用记忆化……快一点吧。
提交:https://codeforces.com/contest/1815/submission/211297560
E. Bosco and Particle
性质好题。
性质:
-
循环多次 循环一次
-
设 表示实际上从上面进入这个序列的次数, 表示实际上向下面出去这个序列的次数。我们把第 个序列单独提出来,类似的定义 和 。可以发现,,也就是有
-
有 。
-
令 ,,于是有 。
-
需要保证 , 为整数。
于是就可以写出来啦!!!(不是
提交:Submission #211323975 - Codeforces
竟然比
C++
快,不可思议
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App