做题记录?!!?

做题记录?!!?

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\)

对于前面,简单二分。

posted @ 2026-06-15 19:42  codwarm  阅读(8)  评论(0)    收藏  举报