POJ 1006 生理周期【数论】

这题是有中文版的(右上角选项卡里把default改成简体中文)然后看到他把biorhythms翻成生理周期我可耻的笑了......23333

如果没有限定从日期d开始,完全可以从第一天起开始计时,因此设从第一天开始x天生理周期重合,很容易列出等式:

x=p+k1*23=e+k2*28= i+k3*33

接着转成同余式(方程组)

x ≡ p (mod 23)

x ≡ e (mod 28)

x ≡ i (mod 33)

哈 23 28 33 正好是互质的免去了另外的转换了,这时想直接套用中国剩余的模板显然是很蠢的做法,因为此时模数 23 28 33 都已给出很容易直接算出Mi,Mi’ :

M1=28*33=924

M1’*924≡1 (mod 23)

解得M1’=6

同理M2=23*33=759 M2’=19

M3=23*28=644 M3’=2

因此x=ΣMi*Mi’*ki(k1=p,k2=e,k3=i)=924*6*p+759*19*e+644*2*i

= 5544*p+14421*e+1288*i

因为要求0~23*28*33范围内的一组解并且有一个初始时间d 因此最终结果就是(5544*p+14421*e+1288*i-d)% 21252 再判断下防止结果为负数就行了

#include<cstdio>

#include<iostream>

#include<string.h>

using namespace std;

int main()

{

int p,e,i,d,t=0,ans;

scanf("%d%d%d%d",&p,&e,&i,&d);

while (p!=-1)

{

ans=(5544*p+14421*e+1288*i-d)% 21252;

if (ans<=0)ans+=21252;

printf("Case %d: the next triple peak occurs in %ddays.\n",++t,ans);

scanf("%d%d%d%d",&p,&e,&i,&d);

}

return 0;

}

时间: 2024-10-13 03:13:12

POJ 1006 生理周期【数论】的相关文章

POJ 1006 - 生理周期 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置. 题目链接:http://poj.org/problem?id=1006&lang=zh-CN&change=true Description 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如,智力周期的高峰,人会思维敏捷,精力容易高度集中.因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天.对于每个人

poj——1006 生理周期

生理周期 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 138291   Accepted: 44300 Description 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如,智力周期的高峰,人会思维敏捷,精力容易高度集中.因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天.对于每个人,我们想知道

POJ 1006 生理周期(中国剩余定理)

生理周期 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 118302   Accepted: 37136 Description 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如,智力周期的高峰,人会思维敏捷,精力容易高度集中.因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天.对于每个人,我们想知道

poj 1006 生理周期

题目链接:http://poj.org/problem?id=1006 题意:中文题. 中国剩余定理: 1 #include <cstdio> 2 #include <cmath> 3 4 using namespace std; 5 6 int main() 7 { 8 int p,e,i,d; 9 int Case=1; 10 int lcd = 21252; 11 while(scanf("%d%d%d%d",&p,&e,&i,&a

POJ 1006 Biorhythms (数论-中国剩余定理)

Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 111285   Accepted: 34638 Description Some people believe that there are three cycles in a person's life that start the day he or she is born. These three cycles are the physical,

生理周期 (poj 1006) 题解

[问题描述] 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如,智力周期的高峰,人会思维敏捷,精力容易高度集中.因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天.对于每个人,我们想知道何时三个高峰落在同一天.对于每个周期,我们会给出从当前年份的第一天开始,到出现高峰的天数(不一定是第一次高峰出现的时间).你的任务是给定一个从当年第一天开始数的天数,输出从给定时间开始(不包括

生理周期POJ 1006

Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 138101   Accepted: 44225 Description 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如,智力周期的高峰,人会思维敏捷,精力容易高度集中.因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天.对于每个人,我们想知道何时三个高

poj 1006(剩余定理)

生理周期 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 111426   Accepted: 34702 Description 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如,智力周期的高峰,人会思维敏捷,精力容易高度集中.因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天.对于每个人,我们想知道

poj 1006:Biorhythms(水题,经典题,中国剩余定理)

Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 110991   Accepted: 34541 Description Some people believe that there are three cycles in a person's life that start the day he or she is born. These three cycles are the physical,