Biorhythms HDU - 1370 (中国剩余定理)
孙子定理:
当前存在三个式子,t%3=2,t%5=3,t%7=2.然后让你求出t的值的一个通解。
具体过程:选取3和5的一个公倍数t1能够使得这个公倍数t1%7==1,然后选取3和7的一个公倍数t2使得这个公倍数t2%5==1,然后再选取5和7的一个公倍数t3使得这个公倍数t3%3==1,求出来
t1==15,t2==21,t3==70,然后最终的答案就是(15*3+21*3+70*2)+105*n.这里的105指的是3 5 7 的最小公倍数,为什么这样做?既然是有余数,那么就把这个余数搞没了就可以了。
附上李永乐老师的视频链接:https://www.bilibili.com/video/av25823277?from=search&seid=13476544282891947834
题目链接:https://cn.vjudge.net/problem/HDU-1370
题目大意:给你三个式子,让你求出满足题目条件的解。
(n-d)%23=p,(n-d)%28=e,(n-d)%33=i。给你d,p,e,i,让你求出n的值,其实把(n-d)看成一个整体,求出来之后再减去d就能求出n了。
中国剩余定理模板也存一下。
m数组是被除数,下标从0开始 m[0]=23,m[1]=28,m[2]=33.
b数组是等号右边的数,下标从0开始,b[0]=p,b[1]=e,b[2]=i。
然后求出的答案是(n-d)的值。
AC代码:
#include<iostream>
#include<stack>
#include<cstring>
#include<iomanip>
#include<stdio.h>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
# define ll long long
# define inf 1ll<<
const int mod = ;
const int maxn = 1e3+;
int exgcd(int a,int b,int &x,int &y){
int d=a;
if(b!=){
d=exgcd(b,a%b,y,x);
y-=(a/b)*x;
}
else {
x=;
y=;
}
return d;
}
int china(int m0[],int b[]){
int x,y,n,m=,a=;
for(int j=;j<;j++){
m=m*m0[j];
}
for(int j=;j<;j++){
n=m/m0[j];
exgcd(n,m0[j],x,y);
a=a+n*b[j]*x;
}
return a%m;
}
int main(){
int T;
int b[];
int p,e,i,d;
int Case=;
scanf("%d",&T);
while(~scanf("%d%d%d%d",&p,&e,&i,&d)){
if(p==-&&e==-&&i==-&&d==-)break;
int m[]={,,};
b[]=p,b[]=e,b[]=i;
int sum=china(m,b)-d;
if(sum<=)sum+=mod;
printf("Case %d: the next triple peak occurs in %d days.\n",++Case,sum);
}
return ;
}
Biorhythms HDU - 1370 (中国剩余定理)的更多相关文章
- Biorhythms(poj1006+中国剩余定理)
Biorhythms Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 117973 Accepted: 37026 Des ...
- POJ 1006 Biorhythms (数论-中国剩余定理)
Biorhythms Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 111285 Accepted: 34638 Des ...
- HDU 5446 中国剩余定理+lucas
Unknown Treasure Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Other ...
- hdu 1573(中国剩余定理)
X问题 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- hdu 3579(中国剩余定理+考虑0)
Hello Kiki Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- 【中国剩余定理】POJ 1006 & HDU 1370 Biorhythms
题目链接: http://poj.org/problem?id=1006 http://acm.hdu.edu.cn/showproblem.php?pid=1370 题目大意: (X+d)%23=a ...
- 中国剩余定理+扩展中国剩余定理 讲解+例题(HDU1370 Biorhythms + POJ2891 Strange Way to Express Integers)
0.引子 每一个讲中国剩余定理的人,都会从孙子的一道例题讲起 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何? 1.中国剩余定理 引子里的例题实际上是求一个最小的x满足 关键是,其中 ...
- poj 1006:Biorhythms(水题,经典题,中国剩余定理)
Biorhythms Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 110991 Accepted: 34541 Des ...
- POJ 1006 - Biorhythms (中国剩余定理)
B - Biorhythms Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Subm ...
随机推荐
- target存放的是编译后的.class文件地方 默认情况下不会讲非class文件放入进入 如果要使用非.class文件 需要通过增加配置方式自动加入文件
target存放的是编译后的.class文件地方 默认情况下不会讲非class文件放入进入 如果要使用非.class文件 需要通过增加配置方式自动加入文件
- 数字对——RMQ+二分答案
题目描述 小H是个善于思考的学生,现在她又在思考一个有关序列的问题. 她的面前浮现出一个长度为n的序列{ai},她想找出一段区间[L, R](1 <= L <= R <= n). 这 ...
- ajax跨域,携带cookie
解决方案很简单. 直接上代码: web.xml中: 添加了 cors来解决跨域 (奇怪的是,credentials设置为false.反正这个是照搬的...) <filter> ...
- LightOJ - 1356 Prime Independence (二分图 最大独立集 素数打表)
题意: 给你一个集合,让你从这个集合中挑选出几个数,使得这几个数中任意两个数相除后的值不能为素数 即挑选出来的这几个数不能互相冲突 最大独立集 = 所有点数 - 最大匹配数 呵..呵...原先用的二维 ...
- 【POI每日题解 #6】KRA-The Disks
题目链接 : [POI2006]KRA-The Disks 好有既视感啊... 注意一下输入输出 输入是从上到下输入箱子的宽度 输出是最上面的积木停在哪一层 即 箱子高度 - 积木高度 + 1 在初始 ...
- bypy 用法
因为服务器上爬取到的40个G的数据采用http,ftp,scp传输到本地效果不太理想.找资料就看到了bypy,利用百度云存储解决这个问题,解决了服务器带宽有限的问题. pip install bypy ...
- linux 用户及用户组管理
主要分为以下三部分: 1. 用户账号的添加.修改及删除 2. 用户口令的管理 3. 用户组管理 用户管理 1.添加新用户账号 $ useradd 选项 用户名 选项: -c comment 指定一段注 ...
- ThinkPHP5 隐藏index.php问题
隐藏index.php 可以去掉URL地址里面的入口文件index.php,但是需要额外配置WEB服务器的重写规则. 以Apache为例,需要在入口文件的同级添加.htaccess文件(官方默认自带了 ...
- 转载:C++类内存分布
本文转自:http://www.cnblogs.com/jerry19880126/p/3616999.html,原文写的非常好,从中学到了虚继承的概念,也学会了用VS查看内存分布. 说下C++内存分 ...
- 硬盘性能 & 文件碎片的一些思考
昨天将一台机器上的数据转移(备份)到另一台机器上,花了差不多一个晚上,传输了100G左右的数据. 感觉数据源机器的硬盘越来越不行了,读写性能下降的很历害. 这些年来写软件的时候很少去考虑硬盘的读写性能 ...