做题记录?!!?
做题记录?!!?
CF1406E Deleting Numbers
题目描述
这是一个交互题。
有一个未知整数 \(x\)(\(1 \le x \le n\))。你需要找出 \(x\) 的值。
一开始,你有一个整数集合 \(\{1, 2, \ldots, n\}\)。你最多可以进行 \(10000\) 次如下操作:
- A \(a\):查询当前集合中有多少个数是 \(a\) 的倍数。
- B \(a\):查询当前集合中有多少个数是 \(a\) 的倍数,然后删除所有 \(a\) 的倍数,但 \(x\) 永远不会被删除(即使 \(x\) 也是 \(a\) 的倍数)。在此操作中,\(a\) 必须大于 \(1\)。
- C \(a\):表示你已经确定 \(x=a\)。此操作只能执行一次。
做法
分大小质数,小质数全问一遍然后对于有的再指数从大到小查。
大质数考虑分块,每块后再问一遍 \(A \ 1\),看块内有无。
有的话就在快内查。
D. Magical Tiered Cake
脑电波
汉诺塔,改成顶上有 \(a_i\) 才能动。
直接类似汉诺塔一样动。
得到 \(f(n) = f(n-a_i-1)\times 2 + f(n-1)+1 \le f(n-2)\times2 + f(n- 1)+1 \le 2^n-1\).
E. Snaking Arrangement
\(n \times n\) 的网格上,有 \(n\) 条路径,第 \(i\) 条长度为 \(2 \times i - 1\)。
现在固定了几条,问有几种可能的填路径方案数。
做法
先手玩一下。
可以发现蛇的放置对应着一个 \([1,n]\) 的排列。
把矩阵旋转45度。
从上到下。
发现每次会多一只蛇头 \(x\)
然后上面的旧蛇头运行规则是:在 \(x\) 左边则向左,反之向右。
方案数即为每一层蛇头能选择的格子数量之积。
能选格子是一段区间算一下乘一下。
CF1408E Avoid Rainbow Cycles
题目描述
给定 \(m\) 个整数集合 \(A_1, A_2, \ldots, A_m\),这些集合的元素都是 \(1\) 到 \(n\) 之间的整数(包含 \(1\) 和 \(n\))。
有两个正整数数组 \(a_1, a_2, \ldots, a_m\) 和 \(b_1, b_2, \ldots, b_n\)。
每次操作,你可以从集合 \(A_i\) 中删除一个元素 \(j\),并为此支付 \(a_i + b_j\) 个金币。
你可以进行若干次(也可以不进行)这样的操作(有些集合可能会变成空集)。
之后,你将用这些集合构建一个带有边颜色的无向图,该图有 \(n\) 个顶点。对于每个集合 \(A_i\),对于所有 \(x, y \in A_i\) 且 \(x < y\),你都要添加一条颜色为 \(i\) 的边 \((x, y)\)。某些顶点对之间可能会有多条边,但这些边的颜色各不相同。
你称一个环 \(i_1 \to e_1 \to i_2 \to e_2 \to \ldots \to i_k \to e_k \to i_1\)(\(e_j\) 是连接顶点 \(i_j\) 和 \(i_{j+1}\) 的某条边)为“彩虹环”,如果该环上的所有边颜色都不相同。
请你求出,为了使最终得到的图中没有彩虹环,你最少需要支付多少金币。
做法
每个集合有一个相互连边的东西。
trick:优化建图
考虑每个集合中的每个点都连向集合对应的虚点。
此时他们的连通性不变。
令边权等于 \(a_i + b_j\) ,跑最大生成树做完了。
CF1491F Magnets
有趣交互。
有0 -1 1
每次选一些在左,一些在右,返回左和 x 右和,而且要求返回值必须 \(\le n\)。
次数 \(n + log_2^{n}\) 要求得出所有 0 的位置。
做法
容易被限制吓晕。
考虑如何才能做到信息量最大化。
考虑可以一边只放 \(1\) 个。而且这样肯定不违反。
考虑查 \(i\) 与 \(1 \to i-1\)。
容易知道 \(i\) 是否是磁性的。
且前面最多一个。
有了 \(i\),容易得出后面所有的 \(0\)。
对于前面,简单二分。

浙公网安备 33010602011771号