hdu4696 Answers(循环节+找规律)

Posted 人活着就是为了Chelly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu4696 Answers(循环节+找规律)相关的知识,希望对你有一定的参考价值。

题意:

分析:

容易想到先把T数组按位置和对应权值建一个有向图(类似置换群那种指法)

然后图建完了,如果C[]里面都是2,那显然只能凑出那些偶数,奇数是不能凑出来的

如果C[]有1有2呢?

事实上是可以凑出所有自然数的……

找一个含有数字1的棒棒糖图形(先一条链,后一个环)

1)如果环中全是2,没有1

   从起点一直走下去一定是这样一个情况.......12222222222.....

   我们发现可以根据12222222.....来凑出所有数

2)如果环中有1,那么我们可以用数学归纳法来证明,假设1~x-1都能凑出来

  那么对于我们x-1时候的答案,总和差1,我们可以让它右边界扩展:

    如果进来了一个1,那么ok,凑出来了;

    如果没有,则进来的是2,我们让左边出来一个,如果出来的是1,那么ok,否则则继续进行操作

  我们发现这个操作是可以有限次结束的,因为如果无限次结束,那么就说明一直进出的都是222222,说明我们陷入了一个只有2的循环,但是这种情况是在环中有1的情况下的,所以是不会无限次进行的

于是就得出了一个神奇的结论:如果C[]中有1,那么所有正整数询问都可以凑出来,如果没有,那么只能凑出那些正偶数询问

 

以上是关于hdu4696 Answers(循环节+找规律)的主要内容,如果未能解决你的问题,请参考以下文章

HDU 2050:折线分割平面(找规律,递推)

hdu1005 超规模>>找规律>>有限次数循环

hdu 5690(同余定理找循环节 / 快速幂)

hdu 3054 Fibonacci 找循环节的公式题

2016"百度之星" - 初赛(Astar Round2A)1001 All X(HDU5690)——找循环节|快速幂

HDU1812 - Count the Tetris