AtCoder Regular Contest 118 题解

ARC118 题解

[toc]

AC代码

A – Tax Included Price

询问第 $N$ 个无法被 $\frac{100+T}{100}\times i$ 表示的自然数($i\in N^*$)。

$N\leq 10^9,T\leq 50$ 。

假设 $\frac{100+T}{100}\times i=j$ ,那么就已经存在 $j-i$ 个无法被表示的自然数,因此可以考虑二分搜索。

注意精度问题!全部使用整数计算,不要用浮点数!

B – Village of M People

给定两个正整数 $N,M$ 和一个大小为 $K$ 的数组 $A$ ,请你构造一个大小为 $K$ 的数组 $B$ 使得:

  •  $\sum_{i=0}^{K-1}A_i=N,\sum_{i=0}^{K-1}B_i=M$ ;
  •  最小化 $\max_i |\frac{A_i}{N}-\frac{B_i}{M}|$ 。

$N,M\leq 10^9, K\leq 10^5$ 。

由于浮点数运算精度不靠谱,考虑将上式乘上常数 $NM$ ,那么数组 $A$ 的每一项就变成了 $MA_i$ ,数组 $B$ 的每一项就变成了 $NB_i$ ,我们需要最小化 $\max_i|MA_i-NB_i|$ ,这样这个问题就可以通过整数运算解决了。

因为需要最小化 $\max_i |MA_i-NB_i|$ ,这可以考虑二分搜索一个偏差值 $x$ 使得 $MA_i-x \leq NB_i\leq MA_i+x$ ,每次check数组 $B$ 的和的最小、最大值是否包含 $M$ 。

C – Coprime Set

构造一个大小为 $N$ 的集合 $A$ 并满足:

  1. 集合 $A$ 中所有元素的最大公因数为 $1$ ;
  2. 集合 $A$ 中任意两个元素的最大公因数 $>1$ ;
  3. 每一项 $A_i$ 满足 $1\leq A_i\leq 10000$ 。

$3\leq N\leq 2500$ 。

考虑 $N=3$ 时的构造方案:$(6,10,15)$ ,然后我们可以向集合中不停加入形如 $6x,10y,15z$ 的整数即可,这样已经可以满足 $N\leq 2500$ 的数据范围了。

D – Hamiltonian Cycle

给定三个正整数 $P,A,B$ ,保证 $P$ 是质数,构造一个大小为 $P$ 的数列使得:

  •  $ A_i\leq P – 1$ 。
  •  $A_1 = A_P = 1$ 。
  •  $(A_1, A_2, \ldots, A_{P-1})$ 是 $(1, 2, \ldots, P-1)$ 的一个排列。
  •  对于任意的 $2\leq i\leq P$ 均至少满足以下任意一项:
    •  $A_{i} \equiv aA_{i-1}\pmod{P}$ 。
    •  $A_{i-1} \equiv aA_{i}\pmod{P}$ 。
    •  $A_{i} \equiv bA_{i-1}\pmod{P}$ 。
    •  $A_{i-1} \equiv bA_{i}\pmod{P}$ 。

$A,B<P\leq 10^5$ 。

相当有趣的一道题,关键是发现上方的限制实际上可以表示为:在一个网格图上,单元 $(i,j)$ 代表 $a^ib^j$ ,每次可以从 $(i,j)$ 走到与它四联通相邻的单元上,找一条起点为 $1$ 的不重复回路。

经过一些尝试后可以发现更强的性质:本题就是在一个 $n\times m(nm=P-1)$ 的网格图上找一条哈密顿回路,这个 $n\times m$ 的网格图的第一列可以这样构造:$g[i][0]=a^i\pmod{P}$ ,终点为 $g[n][0]=a^n\pmod{P}=1$(这意味着找到了一个循环节,返回了起点),因此 $m=\frac{P-1}{n}$ 。然后对于该网格图的每一项均有 $g[i][j]=g[i][j-1]\times B\pmod{P}(j>0)$ 。

以本题样例1 P = 13, A = 4, B = 5 为例,构造如下图:

ARC118D-P1

如果无法构造出这个网格图,那么本题无解。

证明请参考 AtCoder官方题解我纯靠脑补

因此我们只需要想办法构造一个哈密顿回路即可,需要注意的一点是:在右边界向右走不一定会回到左边界上的同一行!只有上下边界是连通的!同时,由于 $P$ 是素数,所以 $P-1$ 是个偶数(特判2就好了),因此 $n,m$ 中至少有一个偶数,于是我们分类给出构造方案:

  1. n,m=1

    这时,网格图只有一行或一列,直接走到底就好。

  2. n为偶数

    如下图构造:

    ARC118D-P2

  3. n为奇数

    如下图构造:

    ARC118D-P3

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇