中国剩余定理poj1006
中国剩余定理即解一组带余除法的不定方程组(同余式组解法)。
例如:求一个最小数x,已知x%3=2且x%5=3且x%7=2。
思路就是:
1、先从(3,5)的公倍数中找一个%7=1的最小公倍数,这里是15;再从(3,7)的公倍数中找一个%5=1的最小公倍数,这里是21;再从(5,7)的倍数中找一个%3=1,这里是70。
2、用A=15*2=30,并且30%7=2;用B=21*3=63,并且63%5=3;用C=70*2=140,并且140%3=2;
3、然后把这三个数相加:30+63+140=233;
4、用233 去除以(3,5,7)的最小公倍数105,得到余数23,即233%105=23, 23就是符合条件的最小X。
思路分析:
1、首先提及一个数学公式 a%b=c则 (a+K*b)%b=c;
2、上述的A是(3,5)的公倍数,B是(3,7)的公倍数,C是(5,7)的公倍数。A满足A%7=2,通过上面的公式可得(A+B+C)%7=2,因为B,C都是7的倍数;同理(A+B+C)%5=3,(A+B+C)%3=2。
3、A+B+C一定满足题目的要求,但不是最小的,所以最后结果我们只需要从A+B+C 中最大限度的减掉(3,5,7)的最小公倍数,即(A+B+C)%105=23;
对于poj1006这个题。
题意:
告诉你有三个值, physical, emotional, 和 intellectual ,它们周期分别为23,28,33。
题目给你这个三个值到达峰值的天数分别为p,e,i,也告诉的时间已经去过d天,问这个三个值同时到达峰值至少还需要多少天?
设还需要X天:
则X%23=p;X%28=e;X%33=i;同上解析
A=28*33*K*p (28*33*K%23==1)=5544*p;
B=23*33*K*e (23*33*K%28==1 ) =14421*e;
C=28*23*K*i (28*23*K%33==1)=1288*i;
代码如下:
#include<stdio.h>
#include<algorithm>
#include<iostream>
#define N 21252
using namespace std;
int p,e,i,d;
int main()
{
int t=0;
while(~scanf("%d%d%d%d",&p,&e,&i,&d))
{
if(p==-1&&e==-1&&i==-1&&d==-1)
break;
t++;
int num=0;
num=5544*p+14421*e+1288*i;
num=(num-d+N)%N;
if(num==0)
num=N;
printf("Case %d: the next triple peak occurs in %d days.\n",t,num);
}
return 0;
}
中国剩余定理poj1006的更多相关文章
- POJ1006 Biorhythms —— 中国剩余定理
题目链接:https://vjudge.net/problem/POJ-1006 Biorhythms Time Limit: 1000MS Memory Limit: 10000K Total ...
- poj1006中国剩余定理
Biorhythms Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 103506 Accepted: 31995 Des ...
- POJ1006——中国剩余定理
题目:http://poj.org/problem?id=1006 中国剩余定理:x= m/mj + bj + aj 讲解:http://www.cnblogs.com/MashiroSky/p/59 ...
- 《孙子算经》之"物不知数"题:中国剩余定理
1.<孙子算经>之"物不知数"题 今有物不知其数,三三数之剩二,五五数之剩七,七七数之剩二,问物几何? 2.中国剩余定理 定义: 设 a,b,m 都是整数. 如果 m ...
- POJ 1006 中国剩余定理
#include <cstdio> int main() { // freopen("in.txt","r",stdin); ; while(sca ...
- [TCO 2012 Round 3A Level3] CowsMooing (数论,中国剩余定理,同余方程)
题目:http://community.topcoder.com/stat?c=problem_statement&pm=12083 这道题还是挺耐想的(至少对我来说是这样).开始时我只会60 ...
- (伪)再扩展中国剩余定理(洛谷P4774 [NOI2018]屠龙勇士)(中国剩余定理,扩展欧几里德,multiset)
前言 我们熟知的中国剩余定理,在使用条件上其实是很苛刻的,要求模线性方程组\(x\equiv c(\mod m)\)的模数两两互质. 于是就有了扩展中国剩余定理,其实现方法大概是通过扩展欧几里德把两个 ...
- 洛谷P2480 [SDOI2010]古代猪文(费马小定理,卢卡斯定理,中国剩余定理,线性筛)
洛谷题目传送门 蒟蒻惊叹于一道小小的数论题竟能涉及这么多知识点!不过,掌握了这些知识点,拿下这道题也并非难事. 题意一行就能写下来: 给定\(N,G\),求\(G^{\sum \limits _{d| ...
- 洛谷P3868 [TJOI2009]猜数字(中国剩余定理,扩展欧几里德)
洛谷题目传送门 90分WA第二个点的看过来! 简要介绍一下中国剩余定理 中国剩余定理,就是用来求解这样的问题: 假定以下出现数都是自然数,对于一个线性同余方程组(其中\(\forall i,j\in[ ...
随机推荐
- win10 linux 子系统 所在 目录
C:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\r ...
- 【HDFS API编程】开发环境搭建
使用HDFS API的方式来操作HDFS文件系统 IDEA Java 使用Maven来管理项目 先打开IDEA,New Project 创建GAV然后next 默认使用的有idea内置的Maven,可 ...
- Java 身份证号码验证
身份证号码验证 1.号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码 2.地址码(前 ...
- airbnb 开源reAir 工具 用法及源码解析(一)
reAir 有批量复制与增量复制功能 今天我们先来看看批量复制功能 批量复制使用方式: cd reair ./gradlew shadowjar -p main -x test # 如果是本地tabl ...
- UI5-培训篇-Fiori培训
1.学习网站: SAPUI5学习地址: https://blog.csdn.net/stone0823/article/category/6650292/1? SAPUI5文档: https://sa ...
- Linux网络编程学习(五) ----- 信号(第四章)
1.基本概念 进程阻塞: 进程执行条件得不到满足,就自动放弃CPU资源而进入休眠状态,以等待条件满足,当条件满足时,系统就将控制权还给该进程进行未完成的操作 共享资源: 进程间协调使用的系统资源 锁定 ...
- Reboot-less node fencing in Oracle Clusterware 11g Release 2
在进行一次RAC的高可用性测试时,当private网卡的网线被拔掉之后,没有出现传说中的有一个节点被CRS强制重启,取而代之的是node2上面的ASM实例和RDBMS实例被关闭:当网线被重新插上时,n ...
- [Ting's笔记Day8]活用套件carrierwave gem:(3)Deploy图片上传功能到Heroku网站
前情提要: 身为Ruby新手村民,创造稳定且持续的学习步调很重要,我用的方法就是一周在IT邦写三篇笔记,希望藉由把笔记和遇到的bug记录下来的过程,能帮助到未来想用Ruby on Rails架站的新手 ...
- SSM商城项目(五)
1. 学习计划 1.前台系统搭建 2.商城首页展示 3.Cms系统的实现 a) 内容分类管理 b) 内容管理 4.前台内容动态展示 2. 商城首页展示 2.1. ...
- 微信小程序---分包加载(subpackages)及报错
某些情况下,开发者需要将小程序划分成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载. 分包很简单,具体步骤如下: 在app.json中,创建subPackages,root表示分包A的 ...