POJ 1006-Biorhythms,中国剩余定理,学信安的路过!
我竟然1A了, 终于从一天的浑噩中找回点自信了。人生第一次做中国剩余定理的题,靠着自己的理解。
题意:人的一生分别有体力,情感,智商三个生理周期巅峰,循环时间分别是23,28,33天。现在给出你这三个生理活动在今年出现巅峰的时期(不一定是今年的第一次巅峰状态),然后给出今天的日期,求下一次同时达到巅峰距今天有多少天,如果今天就是同时达到巅峰那么需要求出下一次巅峰。
思路:如果会扩展欧几里德算法就很简单了。很明显是中国剩余定理的一个运用。分别用两个数组存模数和这三个生理日期,然后利用公式:M1*M11*b1+M2*M22*b2+M3*M33*b3+...+Mi*Mii*bi。这里Mii是Mi关于模mi的乘法逆元。
ll e_gcd(ll a,ll b,ll &x,ll &y)
{
if(a==0&&b==0) return -1;
if(b==0)
{
x=1,y=0;
return a;
}
ll d=e_gcd(b,a%b,y,x);
y-=a/b*x;
return d;
}
int main()
{
ll b[3],d;
ll m[3]={23,28,33};
int t=1;
while(~scanf("%I64d%I64d%I64d%I64d",&b[0],&b[1],&b[2],&d))
{
if(d==-1) return 0;
b[0]=b[0]?b[0]:23;
b[1]=b[1]?b[1]:28;
b[2]=b[2]?b[2]:33;
ll M=21252;
ll ans=0;
for(int i=0;i<3;i++)
{
ll x,y;
ll mi=M/m[i];
ll k=e_gcd(mi,m[i],x,y);
ans=(ans+M+mi*x*b[i])%M;
}
ans=ans<=d?ans+M:ans;
printf("Case %d: the next triple peak occurs in %I64d days.\n",t++,ans-d);
}
return 0;
}
POJ 1006-Biorhythms,中国剩余定理,学信安的路过!的更多相关文章
- POJ 1006:Biorhythms 中国剩余定理
Biorhythms Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 121194 Accepted: 38157 Des ...
- POJ1006 Biorhythms —— 中国剩余定理
题目链接:https://vjudge.net/problem/POJ-1006 Biorhythms Time Limit: 1000MS Memory Limit: 10000K Total ...
- 1284-Primitive Roots,学信安的路过
Primitive Roots 此题通过率如此之高,料想不会很难,但是再简单小菜还是不会.. 嗯,下 ...
- POJ 1006 Biorhythms 中国的法律来解决剩余的正式
这个问题以前用模拟的方法来解决亚军,正如溶液是一个通用的解决方案. 这里使用数学方法:剩下的孙子法(当然,被称为中国剩余法).由于建议的孙子.所以也承认外国的孙子是数学家. 参考数论建议大家学习的专业 ...
- POJ 1006 中国剩余定理
#include <cstdio> int main() { // freopen("in.txt","r",stdin); ; while(sca ...
- 数论E - Biorhythms(中国剩余定理,一水)
E - Biorhythms Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Subm ...
- POJ 1006 - Biorhythms (中国剩余定理)
B - Biorhythms Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Subm ...
- POJ 1006 Biorhythms(中国剩余定理)
题目地址:POJ 1006 学习了下中国剩余定理.參考的该博客.博客戳这里. 中国剩余定理的求解方法: 假如说x%c1=m1,x%c2=m2,x%c3=m3.那么能够设三个数R1,R2,R3.R1为c ...
- POJ1006——中国剩余定理
题目:http://poj.org/problem?id=1006 中国剩余定理:x= m/mj + bj + aj 讲解:http://www.cnblogs.com/MashiroSky/p/59 ...
随机推荐
- Hadoop体系结构管理
一.查看Zookeeper信息 [hadoop@weekend01 ~]$zkServer.sh status JMX enabled by default Using config: /hadoop ...
- Hadoop的ChainMapper和ChainReducer使用案例(链式处理)(四)
不多说,直接上干货! Hadoop的MR作业支持链式处理,类似在一个生产牛奶的流水线上,每一个阶段都有特定的任务要处理,比如提供牛奶盒,装入牛奶,封盒,打印出厂日期,等等,通过这样进一步的分 ...
- AJPFX实例集合嵌套之ArrayList嵌套ArrayList
案例:import java.util.ArrayList;import java.util.Iterator;import com.heima.bean.Person;public class De ...
- webuploader上传工具
http://fex.baidu.com/webuploader/getting-started.html#显示用户选择 Html部分 首先准备dom结构,包含存放文件信息的容器.选择按钮和上传按钮三 ...
- Thrift入门及Java实例演示【转】
概述 Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++.Java.Python.PHP.Ruby.Erlang.Perl.Ha ...
- SQL Server2012 T-SQL对分页的增强尝试
简介 SQL Server 2012中在Order By子句之后新增了OFFSET和FETCH子句来限制输出的行数从而达到了分页效果.相比较SQL Server 2005/2008的ROW_Numbe ...
- 生成hprof文件,用MAT进行分析
生成hprof文件可以在DDMS选中进程点击窗口左上角的"dump hprof file"按钮来直接生成,也可以通过在程序加代码中来生成 代码2: void generateHpr ...
- 洛谷 P2604 [ZJOI2010]网络扩容
题目描述 给定一张有向图,每条边都有一个容量C和一个扩容费用W.这里扩容费用是指将容量扩大1所需的费用.求: 1. 在不扩容的情况下,1到N的最大流: 2. 将1到N的最大流增加K所需的最小扩容费用. ...
- Linux Mini 安装 VMware Tools
1.挂载VMware Tools光盘 mount -t iso9660 /dev/cdrom /opt/ 2.安装依赖,安装Tools 将文件复制至 tmp目录解压VMwareTools-10.0.6 ...
- SEO 第十章
SEO第十章 本次课目标: 1. 站外优化方案计划 2. 常见的SEO作弊手段(黑帽) 3. 百度站长平台的使用 4. 网站流量提升和转化率提升 一.站外优化方案计划 友情链接 权重相当.行业 ...