# 生理周期POJ 1006

Description

Input

Output

Sample Input

```0 0 0 0
0 0 0 100
5 20 34 325
4 5 6 7
283 102 23 320
203 301 203 40
-1 -1 -1 -1```

Sample Output

```Case 1: the next triple peak occurs in 21252 days.
Case 2: the next triple peak occurs in 21152 days.
Case 3: the next triple peak occurs in 19575 days.
Case 4: the next triple peak occurs in 16994 days.
Case 5: the next triple peak occurs in 8910 days.
Case 6: the next triple peak occurs in 10789 days.```

Source

East Central North America 1999

Translator

ans%23 = p

ans%28 = e

ans%33 = i

```#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
using namespace std;
const int MAXN=1001;
inline void read(int &n)
{
char c='+';int x=0;bool flag=0;
while(c<'0'||c>'9'){c=getchar();if(c=='-')flag=1;}
while(c>='0'&&c<='9'){x=x*10+(c-48);c=getchar();}
flag==1?n=-x:n=x;
}
int getgcd(int a,int b)
{
return b==0?a:getgcd(b,a%b);
}
int exgcd(int a,int b,int &x,int &y)
{
if(b==0)
{
x=1;
y=0;
return a;
}
int r=exgcd(b,a%b,x,y);
int tmp=x;
x=y;
y=(tmp-(a/b)*y);
return r;
}
int crt(int *a,int *m,int num)
{
int M=1,ans=0;
for(int i=1;i<=num;i++)
M*=m[i];
int x,y;
for(int i=1;i<=num;i++)
{
int nowm=(M/m[i]);
int remain=exgcd(nowm,m[i],x,y);
ans=(ans+a[i]*nowm*x)%M;
}
return ans;
}
int tl,qg,zs,day;
int now=1;
int a[MAXN];
int m[MAXN];
int main()
{
ios::sync_with_stdio(0);
m[1]=23;
m[2]=28;
m[3]=33;
int tot=0;
while(cin>>a[1]>>a[2]>>a[3]>>day)
{
if(a[1]==-1)break;
int out=crt(a,m,3);
if(out<=day)
out+=21252;
printf("Case %d: the next triple peak occurs in %d days.\n",++tot,out-day);
}
return 0;
}```

0 条评论

• ### P2820 局域网

题目背景 某个局域网内有n(n<=100)台计算机，由于搭建局域网时工作人员的疏忽，现在局域网内的连接形成了回路，我们知道如果局域网形成回路那么数据将不停的在回...

• ### BZOJ4773: 负环(倍增Floyd)

一个很显然的思路(然而我想不到是用\(f[k][i][j]\)表示从\(i\)号点出发，走\(k\)步到\(j\)的最小值

• ### 洛谷P1730 最小密度路径(floyd)

很显然的一个dp方程\(f[i][j][k][l]\)表示从\(i\)到\(j\)经过了\(k\)条边的最小权值

• ### P2820 局域网

题目背景 某个局域网内有n(n<=100)台计算机，由于搭建局域网时工作人员的疏忽，现在局域网内的连接形成了回路，我们知道如果局域网形成回路那么数据将不停的在回...

• ### Android性能优化实战之界面卡顿

作者：红橙Darren https://www.jianshu.com/p/18bb507d6e62

• ### 4.6树上的分治法（3）

在POJ: 1741的计数函数上加个循环，只需将“不超过k”改为“不超过k减去小于k”，就可以得到“等于k”的数量了。

• ### C到C++II

结构，联合，枚举C++结构体C++联合C++枚举bool类型内联重载缺省参数和哑元哑元引用引用特点引用做参数引用做函数返回值

• ### ByRecyclerView：真·万能分割线 (线性/宫格/瀑布流)

我基本上找遍了网上所有通过ItemDecoration设置分隔线的文章，但都不尽如意，它们大多只适用于部分情况，比如只能给线性布局设置、只能设置color不能设...

• ### 【2020HBU天梯赛训练】7-50 部落

在一个社区里，每个人都有自己的小圈子，还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里，于是要请你统计一下，在一个给定社区中，到底有多少个互不...

• ### PAT (Basic Level) Practice （中文）1007 素数对猜想

让我们定义d​n为：dn=pn+1−pn，其中p​i是第i个素数。显然有d1=1，且对于n>1有d​n是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数...