Codeforces Round 940 (Div. 2) and CodeCraft-23 (A-E)
A. Stickogon
题意:给定 \(n\) 根木棒长度,问最多构成几个多边形。
贪心,四边形不会优于三角形。
B. A BIT of a Construction
题意:构造包含 \(n\) 个非负元素的数组,使得 \(\sum a_i = k\),并最大化 \(a_1 \mid a_2 \dots | a_n\) 中 \(1\) 的个数。
如果 \(n = 1\),则 \(a = \{k\}\)。
否则:
- 将 \(k\) 的所有 \(1\) 往低位移,得到 \(1\) 的个数与 \(k\) 相同的最小的数 \(x\),如 \((10100)_2 \rightarrow (00011)_2\)
- 从低到高往 \(x\) 上添 \(1\),直到大于 \(k\)
最终只需选两个位置填 \(x\) 和 \(k - x\),其余填 \(0\)。
C. How Does the Rook Move?
题意:\(n \times n\) 的棋盘上 \(A\) 与电脑轮流下车,\(A\) 白子,电脑黑子,满足:
- 一行或一列只能存在一个车,不论颜色。
- \(A\) 下在 \((i, j)\),则电脑下 \((j, i)\)。
- \(A\) 下在 \((i, i)\),则电脑 skip。
\(A\) 先手,给定 \(A\) 的前 \(k\) 步棋,求不同的最终局面个数。
注意到最终局面与前 \(k\) 步棋的位置无关,只取决于于 \(k\) 步之后还剩多少行和列。
不妨让 \(n\) 表示新的行数。
- 下在 \((i, i)\) 相当于在剩余列中选出一列。
- 下在 \((i, j)\) 相当于白子选一列,黑子选一列。
如果当前下了 \(i\) 步 \(1\) 类棋。
此时 \(n - i\) 一定要偶数,否则 \(2\) 类棋下不完剩余列。
令 \(j = \dfrac{n - i}{2}\),则问题转化为在 \(n - i\) 个数中选出 \(j\) 对二元组的方案。
钦定白子选的列,然后黑子任意排列,则方案为 \(\begin{pmatrix}n - i\\ j \end{pmatrix} j!\)
所以最终局面数为 \(\sum\limits_{i = 0}^n [n - i \equiv 0 \pmod 2] \begin{pmatrix}n\\ i \end{pmatrix} \begin{pmatrix} n - i\\ j\end{pmatrix} j!\)
D. A BIT of an Inequality
题意:定义 \(f_{l, r} = \bigoplus\limits_{i = l}^r a_i\),求满足 \(f_{x, y} \oplus f_{y, z} > f_{x, z}\) 的三元组个数。
化简原式:\(f_{x, z} \oplus a_y > f_{x, z}\)
区间异或,转化为前缀异或,即 \(s_{z} \oplus s_{x - 1} \oplus a_y > s_{z} \oplus s_{x - 1}\)
- \(a_y\) 对左式的影响取决于最高位 \(j\)(低位影响的总和小于最高位)。
- 不等式成立当且仅当 \(s_{x - 1} \oplus s_{z}\) 的第 \(j\) 位为 \(0\),即\(s_{x - 1}\) 与 \(s_{z}\) 的第 \(j\) 位相同。
枚举 \(a_y\),\(s\) 中 \([1, y)\) 与 \([y, n]\) 的 \(0/1\) 个数之积即为答案。
E. Carousel of Combinations
题意:求 \(\sum\limits_{i = 1}^n \sum\limits_{j = 1}^i \begin{pmatrix}i\\j \end{pmatrix}(j - 1)! \bmod j\)
\]
\(j\) 个连续数相乘,\(\lfloor\dfrac{i}{j}\rfloor \cdot j\) 一定被 \(j\) 整除,剩余数在模 \(j\) 意义下依次为 \(1, 2\dots ,j - 1\)。
所以原式可以写成 \(\sum\limits_{j = 1}^i \lfloor\dfrac{i}{j}\rfloor (j - 1)! \bmod j\)
威尔逊定理
威尔逊定理
当 \(p\) 为质数时,有
\]
证明
当 \(p = 2\) 时,\((2 - 1)! \equiv -1 \pmod 2\)。
当 \(p > 2\) 时,即证 \(\prod\limits_{i = 2}^{p - 2} \equiv 1 \pmod p\)。
方程 \(x^2 \equiv 1 \pmod p\) 成立当且仅当 \(x \equiv 1\) 或 \(x \equiv p - 1\)。
所以 \(\forall x \in [2, p - 2]\),\(x^{-1} \in [2, p - 2]\) 且 \(x^{-1} \ne x\)。
也就是 \(\dfrac{n - 3}{2}\) 对数两两匹配互为逆元。
推广
\begin{cases}
-1 \,&n = p_i\\
4 \,& n = 4\\
0 \,&n > 4, \ n \ne p_i \\
\end{cases}
\pmod n
\]
合数 \(n = p_1^{\alpha_1}\dots p_k^{\alpha_k}\)。
当 \(n\) 不为完全平方数时,\(p_1 \ne \dfrac{n}{p_1}\) 且 \(p_1, \ \dfrac{n}{p_1} < n\),所以 \(n \mid (n - 1)!\)。
当 \(n = p^2\) 时:
如果 \(2p < n\),\(2p^2 \mid (n - 1)!\)。
否则 \(n = 4\),\((4 - 1)! \equiv 2 \pmod 4\)。
令 \(w_j = (j - 1)! \bmod j\),\(f_i = \sum\limits_{j = 1}^i \lfloor\dfrac{i}{j}\rfloor w_j \bmod j\)。
枚举 \(j = 4\) 或 \(j\) 为质数:
枚举 \(k\),对于 \(i \in [k\cdot j, k\cdot j + j)\),\(j\) 对 \(f_i\) 有 \(k \cdot w_j\) 的贡献,差分实现。
Codeforces Round 940 (Div. 2) and CodeCraft-23 (A-E)的更多相关文章
- Codeforces Round #547 (Div. 3) A.Game 23
链接:https://codeforces.com/contest/1141/problem/A 题意: 给n和m,有两种操作:将n×2 或 n×3,求最少的乘法次数由n得到m. 不能得到时为-1. ...
- Codeforces Round #324 (Div. 2)解题报告
---恢复内容开始--- Codeforces Round #324 (Div. 2) Problem A 题目大意:给二个数n.t,求一个n位数能够被t整除,存在多组解时输出任意一组,不存在时输出“ ...
- Codeforces Round #258 (Div. 2)[ABCD]
Codeforces Round #258 (Div. 2)[ABCD] ACM 题目地址:Codeforces Round #258 (Div. 2) A - Game With Sticks 题意 ...
- Codeforces Round #523 (Div. 2)
Codeforces Round #523 (Div. 2) 题目一览表 来源 考察知识点 完成时间 A Coins cf 贪心(签到题) 2018.11.23 B Views Matter cf 思 ...
- Codeforces Round #296 (Div. 1) C. Data Center Drama 欧拉回路
Codeforces Round #296 (Div. 1)C. Data Center Drama Time Limit: 2 Sec Memory Limit: 256 MBSubmit: xx ...
- Codeforces Round #456 (Div. 2)
Codeforces Round #456 (Div. 2) A. Tricky Alchemy 题目描述:要制作三种球:黄.绿.蓝,一个黄球需要两个黄色水晶,一个绿球需要一个黄色水晶和一个蓝色水晶, ...
- Codeforces Round #247 (Div. 2) ABC
Codeforces Round #247 (Div. 2) http://codeforces.com/contest/431 代码均已投放:https://github.com/illuz/Wa ...
- Codeforces Round #261 (Div. 2)[ABCDE]
Codeforces Round #261 (Div. 2)[ABCDE] ACM 题目地址:Codeforces Round #261 (Div. 2) A - Pashmak and Garden ...
- 构造 Codeforces Round #Pi (Div. 2) B. Berland National Library
题目传送门 /* 题意:给出一系列读者出行的记录,+表示一个读者进入,-表示一个读者离开,可能之前已经有读者在图书馆 构造:now记录当前图书馆人数,sz记录最小的容量,in数组标记进去的读者,分情况 ...
- Codeforces Round 363 Div. 1 (A,B,C,D,E,F)
Codeforces Round 363 Div. 1 题目链接:## 点击打开链接 A. Vacations (1s, 256MB) 题目大意:给定连续 \(n\) 天,每天为如下四种状态之一: 不 ...
随机推荐
- EVENG导入Win7镜像以后可以启动无法VNC打开
原因:未安装支持 eveng 的 vncviewer 解决方法:下载 vncviewer: https://pan.eve-ng.cn/Tools/EVE-NG/Client/EVE-NG-Win-C ...
- Scala 特质(Trait)
1 package chapter06 2 3 object Test13_Trait { 4 def main(args: Array[String]): Unit = { 5 val studen ...
- 【已解决】严重: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"]
Web开发项目中,启动Tomcat时出现错误 这是因为之前启动了Tomcat服务器,但是没有正常的关闭,造成8080端口号的进程依旧在系统后台运行着,导致Tomcat重启失败. cmd taskkil ...
- #割点,Tarjan#洛谷 5058 [ZJOI2004]嗅探器
题目 询问能编号最小的割点删掉后使\(a\)和\(b\)无法连通 分析 考虑将\(a\)当作根,那么割点的dfn小于等于\(b\)的dfn就可以了, 怎么会呢,如果有一个环呢,所以得要让割点的子节点小 ...
- Python 条件和 if 语句
Python支持来自数学的通常逻辑条件: 等于:a == b 不等于:a != b 小于:a < b 小于或等于:a <= b 大于:a > b 大于或等于:a >= b 这些 ...
- Git 13 暂存代码
如果当前分支的功能还没开发完,无法提交代码. 但出现了紧急情况(比如线上BUG),需要立即切换到其他分支进行开发. 此时可以先暂存当前分支代码,等切换回当前分支的时候再恢复. 1.暂存当前分支变更: ...
- 【Kotlin】List、Set、Map简介
1 List Java 的 List.Set.Map 介绍见 → Java容器及其常用方法汇总. 1.1 创建 List 1.1.1 emptyList var list = emptyList& ...
- c# Mutex 互斥锁
前言 互斥锁(Mutex) 互斥锁是一个互斥的同步对象,意味着同一时间有且仅有一个线程可以获取它. 互斥锁可适用于一个共享资源每次只能被一个线程访问的情况. 正文 代码: static void Ma ...
- Scratch3之AI集成 - flappy bird AI版本
AI神秘且有趣,我们一个经典的游戏flappy bird集成AI,实现自训练成长的聪明的笨鸟.先上效果: 初始化的笨鸟拥有分身,每个分身都有自我学习功能,根据自己的移动轨迹和得分情况进行汇总,进行新一 ...
- background-blend-mode
由于 mix-blend-mode 这个属性的强大,很多应用场景和动效的制作不断完善和被发掘出来,遂另起一文继续介绍一些使用 mix-blend-mode 制作的酷炫动画. CSS3 新增了一个很有意 ...