以前的做法

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long LL;
LL ai[],ri[],M;
void Exgcd(LL a,LL b,LL& d,LL& x,LL& y)
{
if(b == ) { d = a, x = , y = ;}
else {
Exgcd(b,a%b,d,y,x); y -= x*(a / b);
}
}
LL gcd(LL a,LL b)
{
return b == ? a : gcd(b,a%b);
}
LL solve(int n)
{
LL a1,r1;
LL a, b, c;
LL x, y, d;
a1 = ai[], r1 = ri[];
for(int i = ; i <= n; ++i)
{
a = a1, b = ai[i], c = ri[i] - r1;
Exgcd(a,b,d,x,y);
if(c % d) return -;
LL t = b / d;
x = (x * (c / d)% t + t) % t;
r1 = a1 * x + r1;
a1 = a1 *(ai[i] / d);
}
return r1;
}
int main()
{
LL p,e,k,d;
int Kase = ;
while(cin >> p >> e >>k >>d)
{
ai[] = , ai[] = , ai[] = ;
ri[] = p , ri[] = e, ri[] = k;
if(p == - && e == - && k == - && d == -) break;
LL ans = solve();
M = ;
for(int i = ; i <= ; ++i) M = M * ai[i] / gcd(M,ai[i]);
if(ans >= M) ans %= M; // 求最小的值.
while(ans <= d) ans += M;
printf("Case %d: the next triple peak occurs in %lld days.\n",Kase++,ans-d);
}
}

中国剩余定理撸一发

不过中国剩余定理 ai[i] 需要互质

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long LL;
LL ai[],ri[],M;
void Exgcd(LL a,LL b,LL& d,LL& x,LL& y)
{
if(b == ) { d = a, x = , y = ;}
else {
Exgcd(b,a%b,d,y,x); y -= x*(a / b);
}
}
LL gcd(LL a,LL b)
{
return b == ? a : gcd(b,a%b);
}
LL China(int n)
{
M = ;
LL Mi,x,y,d,ans = ;
for(int i = ; i <= n; ++i) M *= ai[i];
for(int i = ; i <= n; ++i)
{
Mi = M / ai[i];
Exgcd(Mi,ai[i],d,x,y);
ans = (ans + Mi * x * ri[i]) % M;
}
if(ans < ) ans += M;
return ans ;
}
int main()
{
LL p,e,k,d;
int Kase = ;
while(cin >> p >> e >>k >>d)
{
ai[] = , ai[] = , ai[] = ;
ri[] = p , ri[] = e, ri[] = k;
if(p == - && e == - && k == - && d == -) break;
LL ans = China();
/*M = 1;
for(int i = 1; i <= 3; ++i) M = M * ai[i] / gcd(M,ai[i]);*/
//if(ans >= M) ans %= M; // 求最小的值.
while(ans <= d) ans += M;
printf("Case %d: the next triple peak occurs in %lld days.\n",Kase++,ans-d);
}
}

POJ 1006 同余方程组的更多相关文章

  1. POJ 1006 Biorhythms (中国剩余定理)

    在POJ上有译文(原文右上角),选择语言:简体中文 求解同余方程组:x=ai(mod mi) i=1~r, m1,m2,...,mr互质利用中国剩余定理令M=m1*m2*...*mr,Mi=M/mi因 ...

  2. 【poj2891-Strange Way to Express Integers】拓展欧几里得-同余方程组

    http://poj.org/problem?id=2891 题意:与中国剩余定理不同,p%ai=bi,此处的ai(i=1 2 3 ……)是不一定互质的,所以要用到的是同余方程组,在网上看到有人称为拓 ...

  3. POJ 1006 Biorhythms(中国剩余定理)

    题目地址:POJ 1006 学习了下中国剩余定理.參考的该博客.博客戳这里. 中国剩余定理的求解方法: 假如说x%c1=m1,x%c2=m2,x%c3=m3.那么能够设三个数R1,R2,R3.R1为c ...

  4. poj 1006 中国剩余定理解同余方程

    其实画个图就明白了, 该问题就是求同余方程组的解: n+d≡p (mod 23) n+d≡e (mod 28) n+d≡i (mod 33) #include "iostream" ...

  5. POJ 1006 - Biorhythms (中国剩余定理)

    B - Biorhythms Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Subm ...

  6. 【poj2891】同余方程组

    同余方程组 例题1:pku2891Strange Way to Express Integers 中国剩余定理求的同余方程组mod 的数是两两互素的.然而本题(一般情况,也包括两两互素的情况,所以中国 ...

  7. [POJ 1006]生理周期

    Description 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如,智力周期的高峰 ...

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

    POJ 1006 生理周期 分析:中国剩余定理(注意结果要大于d即可) 代码: #include<iostream> #include<cstdio> using namesp ...

  9. POJ.1006 Biorhythms (拓展欧几里得+中国剩余定理)

    POJ.1006 Biorhythms (拓展欧几里得+中国剩余定理) 题意分析 不妨设日期为x,根据题意可以列出日期上的方程: 化简可得: 根据中国剩余定理求解即可. 代码总览 #include & ...

随机推荐

  1. python初认识、基础数据类型以及 if 流程控制

    python初认识 CPU.内存.硬盘以及操作系统之间的关系 CPU:中央处理器,计算机的逻辑运算单元 硬盘:长期存储数据的地方,断电不会丢失 内存:位于CPU与硬盘之间,缓解高速CPU与低速硬盘之间 ...

  2. 通过修改配置文件修改MySQL的时区设置

    一.找到my.ini文件 二.将时区改为东八区 添加:default-time-zone='+08:00'

  3. 从零开始搭建轻量级个人XSS平台

    一. 前言 决定搭建XSS平台是因为自己想深入学习一下XSS相关的知识,多多进行实践,上网搜索了一下XSS平台有很多,但是总觉得不是很安全,这个毕竟敏感信息要传输到陌生人的服务器上,而且服务器端测试代 ...

  4. 本地测试使用Tomcat,生产环境使用GlassFish。

    总结:Tomcat8 = javaee7规范(servlet3.1 + jsp2.3 + el3.0 + websocket1.0) + java7 [配置初始化参数使用jdk8编译]conf/web ...

  5. 关于AJAX的基础操作

    AJAX开发 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 Java ...

  6. 百度地图web api使用案例

    效果如下: 1.获取位置的经纬度: 如坐标:114.110033,22.541098 获取经纬度: http://api.map.baidu.com/lbsapi/getpoint/index.htm ...

  7. windows 检测进程pid

    根据端口查进程: netstat -ano |find " netstat -ano | findstr 2018 a 显示所有连接和侦听的端口n 以数字形式显示地址和端口号o 显示关联的进 ...

  8. luogu P4389 付公主的背包

    传送门 神仙题鸭!orz dkw 暴力就是完全背包 而完全背包可以和生成函数扯上关系,记第i种物品质量为\(a_i\),那么这种物品的生成函数\(G(i)=\sum_{j=0}^{\infty}x^{ ...

  9. SpringBoot - 添加定时任务

    SpringBoot 添加定时任务 EXample1: import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.spri ...

  10. 读书笔记 Facebook在移动端都干了啥,居然让用户爱上广告

    文章来源:http://news.cnblogs.com/n/513297/ Facebook武器: Facebook 的武器只有一个:让广告主基于目标用户群投放个性化的精准广告.基于高质量的广告内容 ...