码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces Round #599 (Div. 2) Tile Painting

时间:2019-11-07 19:13:59      阅读:113      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!