hdu1573X问题(不互素的中国剩余定理)
X问题
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3295 Accepted Submission(s): 1068
接下来两行。每行各有M个正整数。分别为a和b中的元素。
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
1
0
3
求解x在n的范围内的数量。由于全部的ai不是互质的,所以不能直接用中国剩余定理,可是能够採用http://blog.csdn.net/winddreams/article/details/38425477
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define LL __int64
LL t , n , m , d , x , y , i , bb , aa , flag ;
void gcd(LL a,LL b)
{
if(b == 0)
{
d = a ; x = 1 ; y = 0 ;
}
else
{
gcd(b,a%b);
swap(x,y);
x = -x ; y = -y ;
y += (a/b)*x ;
}
return ;
}
LL a[30] , b[30] ; int main()
{
scanf("%I64d", &t);
while(t--)
{
scanf("%I64d %I64d", &n, &m);
for(i = 0 ; i < m ; i++)
scanf("%I64d", &a[i]);
for(i = 0 ; i < m ; i++)
scanf("%I64d", &b[i]);
aa = a[0] ;
bb = b[0] ;
flag = 1 ;
for(i = 1 ; i < m ; i++)
{
gcd(aa,a[i]);
if( (b[i]-bb)%d != 0 )
flag = 0 ;
if( flag )
{
x = (b[i]-bb)/d*x ;
y = a[i] / d ;
x = ( x%y + y )%y ;
bb = bb + x * aa ;
aa = aa*a[i]/d ;
}
}
gcd(1,aa);
if( bb%d != 0 )
flag = 0 ;
if( flag )
{
x = ( bb/d )*x ;
y = aa / d ;
x = (x % y + y) % y ;
}
if( flag == 0 || x > n )
printf("0\n");
else
{
if( !x )
printf("%I64d\n", (n-x)/y );
else
printf("%I64d\n", (n-x)/y+1 );
}
}
return 0;
}
hdu1573X问题(不互素的中国剩余定理)的更多相关文章
- hdu_1573 X问题(不互素的中国剩余定理)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1573 X问题 Time Limit: 1000/1000 MS (Java/Others) Me ...
- hdu_1370Biorhythms(互素的中国剩余定理)
Biorhythms Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- 数论F - Strange Way to Express Integers(不互素的的中国剩余定理)
F - Strange Way to Express Integers Time Limit:1000MS Memory Limit:131072KB 64bit IO Format: ...
- POJ 2891 中国剩余定理(不互素)
Strange Way to Express Integers Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 17877 ...
- hdu 3579 Hello Kiki【中国剩余定理】(模数不要求互素)(模板题)
<题目链接> 题目大意: 给你一些模数和余数,让你求出满足这些要求的最小的数的值. 解题分析: 中国剩余定理(模数不一定互质)模板题 #include<stdio.h> usi ...
- hdu1573-X问题-(扩展欧几里得定理+中国剩余定理)
X问题 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- ACM/ICPC 之 中国剩余定理+容斥原理(HDU5768)
二进制枚举+容斥原理+中国剩余定理 #include<iostream> #include<cstring> #include<cstdio> #include&l ...
- 中国剩余定理(Chinese Remainder Theorem)
我理解的中国剩余定理的含义是:给定一个数除以一系列互素的数${p_1}, \cdots ,{p_n}$的余数,那么这个数除以这组素数之积($N = {p_1} \times \cdots \tim ...
- 【中国剩余定理】【容斥原理】【快速乘法】【数论】HDU 5768 Lucky7
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5768 题目大意: T组数据,求L~R中满足:1.是7的倍数,2.对n个素数有 %pi!=ai 的数 ...
随机推荐
- C#分层开发MySchool
分层开发之MYSCHOOL No.1实现登陆功能,验证用户名和密码.从数据库里进行匹配,看是否有符合要求的数据. 在DAL层编写代码,返回值为布尔类型.方法参数为(student实体类对象),使用参数 ...
- Promise 异步执行的同步操作
Promise 是用来执行异步操作的. 但有时一个异步操作需要等其他的异步操作完成,这时候就可以使用then来做. function loadImageAsync(url) { return new ...
- 动态载入TreeView时让TreeView节点前显示加号
解释下标题,我这里通过webservice获取数据并动态载入TreeView节点.那么某个节点展开前它是没有子节点的.那么它就不显示加号.这样会让用户误以为此节点不能展开.我是这样做的,每次创建节点a ...
- VC调试笔记
1.windows-32调试: ①使用map文件根据崩溃地址寻找对应的源代码文件和行号 勾选project->settings->link->General mapfile,对应的P ...
- jquery滚动到指定元素,模仿锚点
html <div class="pd-nav"> <div class="n-item active"> 保险服务 <i> ...
- 返回某个界面——nav
NSInteger index=[[self.navigationController viewControllers]indexOfObject:self]; [self.navigationC ...
- 使用图片拉伸resizableImageWithCapInsets
在仿写QQ会话的时候背景蓝色图片是拉伸而来,但是有些地方是受保护的不能拉伸 所以定义了下面的工具类中的一个方法,专门拉伸图片 UIImageResizingModeStretch:拉伸模式,通过拉伸U ...
- Eclipse 整合cvs教程及遇到的问题
今天看着视频教程学习cvs版本管理,现在很多企业开发或许都采用了版本管理器,因为这样可以更好的进行团退开发与代码管理,所以学习一种版本管理技术还是很重要的. 最原始的独立版本管理是由两部分组成的,一个 ...
- C++中的条件传送代码
条件传送代码-这种代码先计算一个条件操作的两种结果,然后再条件从而选其中一个-条件传送代码匹配了现代处理器的性能特征(因为现代处理器是流水线) void minmax2(int a[],int b[] ...
- (转)JAVA路径问题及命令行编译运行基础(linux下)
原地址: http://blog.csdn.net/biaobiaoqi/article/details/6846274 java的运行机制的基本概念: 源文件 也就是我们熟知的.java文件. 类文 ...