宗教或是无节制的自由主义,是致人腐化的毒剂。 现在,一个人要经历 n 个事件,编号为 1 ∼ n。 经历 x 号事件,他的危险值就会增加 x。一开始他的危险值是 0。
当一个人的危险值大于 0 且是 3 的倍数的时候,他会丧失生存的意义,而沉溺于享乐之中,不会再 去经历后面的事件。
那么,有多少种安排经历这 n 个事件的顺序,使得这个人能经历全部 n 个事件?
请给出答案 %10000000000037 的结果。
这是一道十分“复杂”的数论题,分析有点长,慢慢来:
Ps:因为同余a(mod3)[a为1,2,0]的数对这个问题是等价的,所以我一律用数a表示所有的数
(1)首先把所有的数分一个类:
假设同余 1(mod3)的数有mod_1个;
同余 2(mod3)的数有mod_2个;
同余 0(mod3)的数有mod_0个;
(2)若n%3==2,则mod_1=mod_2+1;
于是我们以1为队头,2为队尾[此时一定要有一个0在2前],
数据分布为:
1 1 2 1 2 1 2 1 2 1 2 1 2 1......0 2
然后0随便往里插[不能插在队尾]
可知排列组合数为:
(3)若n%3==1,则mod_1=mod_2;
于是我们还是以1为队头,1,2都可为队尾[但此时不一定要有一个0在1或2前],
数据分布为:
1 1 2 1 2 1 2 1 2 1 2 1 2 1......1 2
然后0随便往里插
(4)若n%3==0,这个的性质是与(2)一样的
so,
代码比较神奇,难以上传