POJ_1006_Biorhythms分析
每个人都有自己体力、感情和智力上的大姨妈。周期分别为23天,28天和33天。如果我在第10天来了体力大姨妈,在第11天来了感情大姨妈,在第12天来了智力大姨妈,请问,我下一次三个大姨妈一起来(爽歪歪了吧,没准还四个大姨妈一起来
)是在哪一天?然后这道题目还要求从给定的如期开始算还需要多少天,其实不影响。
其实这是一道解方程的题。
已知体力、感情、智力大姨妈来的时候分别在第a,b,c天,他们各自经过了Ta,Tb,Tc个周期,最后一起来的时候是第S天,则:
S = a + Ta * 23 = b + Tb * 28 = c + Tc * 33
求满足条件最小的S。
这题的最优解网上可以搜出一大堆,但我最直观的解法是:
设定Tc为变量,Ta和Tb为因变量。这样求得最小的S需要最多的迭代次数为23 * 28次,计算量可以接受。
这道题有一个小小的可以优化的地方:如果a = b = c,那么方程为齐次的,最小的S为三个周期的最小公倍数,可以减小计算量。
另外,如果求得的S为0,那么下一次来三体合一的大姨妈就是今天,合理吗?所以这个就要计算再下一次三体合一的时间啦,没注意这一点,很可能就被POJ判决为Wrong Answer了
代码没什么难点,就不给出了
分享到:
相关推荐
2遍dp poj_3613解题报告 poj_3613解题报告
poj典型题目解题思路详解 包含源代码和解题时应注意的问题及题目陷阱设计分析
poj题目2775文件子目录源代码,递归经典题目,
poj 1699的代码和方法说明,个人原创
C_(POJ_1854)(分治).cpp
poj上第1990题目源码,用到了2个树状数组,这题数据结构是关键,想到了题目就很简单了
D_(POJ_1723)(思维)(sort).cpp
原理为:以数链思想,移动数组中的内容 使数组在没有扩充情况下,达成移动的效果 当然,有更简单的,大牛不要笑哦
D_(POJ_1723)(思维)(第k大数).cpp
O(nlogn)凸包问题 poj2187
POJ 3131 双向BFS解立体八数码问题
北大POJ1006-Biorhythms【中国剩余定理】 解题报告+AC代码
poj两道题的c++实现。已经测试过可以通过oj
POJ题目及算法,包括动态规划、深搜广搜等算法。含相关注释。
问题:求平面上多个矩形的总面积。 算法:线段树(经典的线段树题目)
这是北大在线测试的第1002题,方便记忆的电话号码的解题例程,题目中有一个列表,记录着许多方便记忆的电话号码。不同的方便记忆的电话号码可能对应相同的标准号码,这个程序的任务就是找到它们
poj 3310 的代码和方法说明,个人原创
http://poj.grids.cn/problem?id=2774 POJ 2774 木棒加工 木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头,需要得到的小段的数目是给定了。当然,我们希望得到的小段越长越好,你的任务是计算能够...
看了测试用例后,大家估计已经明白题目的意思了吧!题目很简单,但是就是很烦。 开始直接是没思路,不知道怎么模拟,但是想了带该半个小时,就搞定了。就是把每个数存到数组里面。
POJ上面题目的解题报告。涵盖挺多的。可作参考。代码都正确。ACM新手入门必下~~ 加油...