题目链接:http://poj.org/problem?id=1006
难道只有我自己看不懂这道题吗?我始终没搞明白它和中国剩余定理有什么关系。。
刚刚终于看明白了,比着题目一点一点扣字眼看明白了,还画出了一张神来之作--
是的,简直完美(。)
题目大意:(要敲住重点)
从人生下来(遥远的起点,不用考虑),就有三个周期,T1=23,T2=28, T3=33,一个周期内有一天是峰值(不知道周期内哪一天),给你三个日期,r1,r2,r3,分别是峰值日期,(当然,这个峰值可能不是第一个峰值),给你一个起始日期(所谓的,哪天都一样,就是多几个周期少几个周期的事),问从这个起始日期,要多少天能见着峰值在一起的那一天。
余数,除数,所求总数,关系一目了然,这三个除数之间互质,和中国剩余定理的关系一目了然。、
yeah~.
解题思路:
中国剩余定理,本题难点不在编程,而是分析题目并转化为数学公式
要引入本题解法,先来看一个故事 “韩信点兵”:
传说西汉大将韩信,由于比较年轻,开始他的部下对他不很佩服。有一次阅兵时,韩信要求士兵分三路纵队,结果末尾多2人,改成五路纵队,结果末尾多3人,再改成七路纵队,结果又余下2人,后来下级军官向他报告共有士兵2395人,韩信立即笑笑说不对(因2395除以3余数是1,不是2),由于已经知道士兵总人数在2300~2400之间,所以韩信根据23,128,233,------,每相邻两数的间隔是105(3、5、7的最小公倍数),