标签:round codeforce def paint 打表 推出 思路 hellip bsp
题意:就是给你一个n,然后如果 n mod | i - j | == 0 并且 | i - j |>1 的话,那么i 和 j 就是同一种颜色,问你最大有多少种颜色?
思路: 比赛的时候,看到直接手推,发现有点东西,直接打表找出了规律 —— 如果 n的质因子只有一个,那么总数就是 那个 质因子。其它都为 1。
今天上课的时候无聊,还是试着推了一下原理。
1.如果一个数只有一个质因子 x ,那么 n-x 、n-2x、n-3x ……等等全为一种颜色,也就是说每隔 x个就是同种颜色,这样的话就是有x种颜色。
2.如果一个数有多个质因子,比如有 x、y…………
那么我们可以推出 n-x 、n-2x、n-3x ……等等全为一种颜色,每隔 x个就是同种颜色
n-y 、n-2y、n-3y ……等等全为一种颜色,每隔 y个就是同种颜色
再推 k = gcd(x,y),那么就是每隔k个就是同种颜色,并且由于k是 x和y的最大公因数,所以每隔k个中必然包含 x、y。
由于x、y都是质数,所以k==1,也就是说每隔 1个就是同种颜色,答案就是 1。
Codeforces Round #599 (Div. 2) Tile Painting
标签:round codeforce def paint 打表 推出 思路 hellip bsp
原文地址:https://www.cnblogs.com/caibingxu/p/11814063.html