hdu_1573_X问题 (分段之中国剩余
Input输入数据的第一行为一个正整数T,表示有T组测试数据。每组测试数据的第一行为两个正整数N,M (0 < N <= 1000,000,000 , 0 < M <= 10),表示X小于等于N,数组a和b中各有M个元素。接下来两行,每行各有M个正整数,分别为a和b中的元素。Output对应每一组输入,在独立一行中输出一个正整数,表示满足条件的X的个数。
Sample Input
3
10 3
1 2 3
0 1 2
100 7
3 4 5 6 7 8 9
1 2 3 4 5 6 7
10000 10
1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 Sample Output
1
0
3 在我看来算是中国剩余定理的一个变形题目,或者说是lcm的一个变形题目。
每个符合答案的数字在0-N之间,并且间距为lcm。设lcm+x为符合所有a[i]的解,则lcm+lcm+x也同样符合条件。
证:
(lcm+x)%a[i]=b[i]
lcm%a[i]=0
(lcm+lcm+x)%a[i]=lcm%a[i]+(lcm+x)%a[i]=b[i]
设t=N%lcm
本题就可以求0-t之间是否有解和 t - lcm+t之间是否有解来解决
#include <iostream>
#include<cstdio>
using namespace std;
#define ll long long
int a[15];
int b[15];
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,m;
int lcm=1;
cin>>n>>m;
for(int i=0;i<m;i++)
{
cin>>a[i];
lcm=a[i]/gcd(lcm,a[i])*lcm;
}
for(int i=0;i<m;i++)
{
cin>>b[i];
}
int r=n%lcm;
int cnt1=0;
for(int i=1;i<=r&&!cnt1;i++)
{
for(int j=0;j<m;j++)
{
if(i%a[j]!=b[j])
break;
if(j==m-1)
{
cnt1++;
}
}
}
int cnt2=0;
for(int i=r+1;i<=r+lcm&&!cnt2;i++)
{
for(int j=0;j<m;j++)
{
if(i%a[j]!=b[j])
break;
if(j==m-1)
cnt2+=n/lcm;
}
}
cout<<cnt1+cnt2<<endl;
}
}
hdu_1573_X问题 (分段之中国剩余的更多相关文章
- 《孙子算经》之"物不知数"题:中国剩余定理
1.<孙子算经>之"物不知数"题 今有物不知其数,三三数之剩二,五五数之剩七,七七数之剩二,问物几何? 2.中国剩余定理 定义: 设 a,b,m 都是整数. 如果 m ...
- hdu 5446 Unknown Treasure 卢卡斯+中国剩余定理
Unknown Treasure Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Other ...
- 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 ...
- poj1006中国剩余定理
Biorhythms Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 103506 Accepted: 31995 Des ...
- (伪)再扩展中国剩余定理(洛谷P4774 [NOI2018]屠龙勇士)(中国剩余定理,扩展欧几里德,multiset)
前言 我们熟知的中国剩余定理,在使用条件上其实是很苛刻的,要求模线性方程组\(x\equiv c(\mod m)\)的模数两两互质. 于是就有了扩展中国剩余定理,其实现方法大概是通过扩展欧几里德把两个 ...
- 洛谷P2480 [SDOI2010]古代猪文(费马小定理,卢卡斯定理,中国剩余定理,线性筛)
洛谷题目传送门 蒟蒻惊叹于一道小小的数论题竟能涉及这么多知识点!不过,掌握了这些知识点,拿下这道题也并非难事. 题意一行就能写下来: 给定\(N,G\),求\(G^{\sum \limits _{d| ...
- 洛谷P3868 [TJOI2009]猜数字(中国剩余定理,扩展欧几里德)
洛谷题目传送门 90分WA第二个点的看过来! 简要介绍一下中国剩余定理 中国剩余定理,就是用来求解这样的问题: 假定以下出现数都是自然数,对于一个线性同余方程组(其中\(\forall i,j\in[ ...
- [SDOI2010]古代猪文 (欧拉,卢卡斯,中国剩余)
[SDOI2010]古代猪文 \(solution:\) 这道题感觉综合性极强,用到了许多数论中的知识: 质因子,约数,组合数 欧拉定理 卢卡斯定理 中国剩余定理 首先我们读题,发现题目需要我们枚举k ...
随机推荐
- jemeter排至数据库时报:Access denied for user 'root'@'localhost' (using password:YES) 解决方案
相信这个问题大部分人都遇到过,至少我遇到过三次了,而且每次原因都不一样,前段时间同学也遇到这个问题,问我怎么解决,我把我的解决思路都说了一遍,发现还不行,最后居然是另外一个原因...哎,说多了都是泪, ...
- poj1092. To Buy or Not to Buy (20)
1092. To Buy or Not to Buy (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue ...
- 关于GPU的 MAKEFILE
引言 最近由于更换项目,服务器也被换走,估计一时半会用不到GPU了,因此最近想把前一段时间做的一些工作,整理记录一下. 实验室采用的GPU有两款: 1. 服务器上的板卡:NVIDIA的Tesla K2 ...
- 第一个flask程序
flask简介: flask是一款非常流行的Python Web框架,出生于2010年,作者是Armin Ronacher,本来这个项目只是作者在愚人节的一个玩笑,后来由于非常受欢迎,进而成为一个正 ...
- node.js运行环境变量配置
-----Windows cmd---------- 1. echo %PATH% 输出Path环境变量 2.set NODE_ENV=testing 定义环境变量 3.echo %NODE_ENV ...
- Spring课程 Spring入门篇 4-3 Spring bean装配(下)之Autowired注解说明2 集合运用
课程链接: 本节主要讲了以下几块内容 1 注解相关解析 2 代码演练 集合for循环的使用 2.1 list集合应用 2.2 map集合应用 2.3 集合排序(只对list有效,对map无效(list ...
- 应该知道的一些Markdown语法
目录 快速输入标题 斜体和粗体,删除线 分隔线 外链接 无序列表 有序列表 定义型列表 插入图片 文字引用 标签分类 表格 行内代码块 代码段 注脚 待办事宜 Todo 列表 显示当前文章的目录 快速 ...
- Vue.js - Day1
什么是Vue.js Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助于We ...
- 在thinkpad SL400上U盘安装双系统ubuntu14.10
转自:http://zydky.iteye.com/blog/1674100 上文中装的双系统是centos6.3,因为自己对ubuntu有点熟悉,就装了ubuntu. 笔记本是09年入手的,买了之后 ...
- CSS3的Animation
1.animation-name :动画名 2.animation-duration:时间 3.animation-delay:延时 4.animation-iteration-co ...