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 ...
随机推荐
- windows常见数据类型
一,常见数据类型 WORD: 16位无符号整形数据 DWORD: 32位无符号整型数据(DWORD32) DWORD64: 64位 ...
- filebeat 配置文件参数
filebeat 配置 所有的 beats 组件在 output 方面的配置都是一致的,之前章节已经介绍过.这里只介绍 filebeat 在 input 段的配置,如下: filebeat: sp ...
- java面试题整理(3)
1.Spring有哪些优点? 轻量级:Spring在大小和透明性方面绝对属于轻量级的,基础版本的Spring框架大约只有2MB. 控制反转(IOC):Spring使用控制反转技术实现了松耦合.依赖被注 ...
- Get The Treasury HDU - 3642(扫描线求三维面积交。。体积交)
题意: ...就是求体积交... 解析: 把每一层z抽出来,计算面积交, 然后加起来即可..! 去看一下 二维面积交的代码 再看看这个三维面积交的代码.. down函数里 你发现了什么规律!!! 参考 ...
- Codeforces Round #411 div 2 D. Minimum number of steps
D. Minimum number of steps time limit per test 1 second memory limit per test 256 megabytes input st ...
- poj1068 【模拟】
Let S = s1 s2...s2n be a well-formed string of parentheses. S can be encoded in two different ways: ...
- Java OOM 常见情况
Java OOM 常见情况 原文:https://blog.csdn.net/qq_42447950/article/details/81435080 1)什么是OOM? OOM,全称“Out Of ...
- 洛谷P2900 [USACO08MAR]土地征用Land Acquisition(动态规划,斜率优化,决策单调性,线性规划,单调队列)
洛谷题目传送门 用两种不一样的思路立体地理解斜率优化,你值得拥有. 题意分析 既然所有的土地都要买,那么我们可以考虑到,如果一块土地的宽和高(其实是蒟蒻把长方形立在了平面上)都比另一块要小,那么肯定是 ...
- 自学Linux Shell4.1-监测程序ps top kill
点击返回 自学Linux命令行与Shell脚本之路 4.1-监测程序ps top kill 1. PS命令 linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的 ...
- 洛谷 P4211 [LNOI2014]LCA 解题报告
[LNOI2014]LCA 题意 给一个\(n(\le 50000)\)节点的有根树,询问\(l,r,z\),求\(\sum_{l\le i\le r}dep[lca(i,z)]\) 一直想启发式合并 ...