HDU X问题 中国剩余定理--求满足条件的个数
X问题
Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2522    Accepted Submission(s): 790
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
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
using namespace std; __int64 m[];
__int64 A[]; __int64 Ex_gcd(__int64 a,__int64 b,__int64 &x,__int64 &y)
{
if(b==)
{
x=;
y=;
return a;
}
__int64 g=Ex_gcd(b,a%b,x,y);
__int64 hxl=x-(a/b)*y;
x=y;
y=hxl;
return g;
} __int64 gcd(__int64 a,__int64 b)
{
if(b==)
return a;
else return gcd(b,a%b);
} void make_ini(__int64 n,__int64 M)
{
__int64 i,x,y,m1,r1,m2,r2,t,d,c,num=;
bool flag;
m1=m[];r1=A[];
flag=false;
for(i=;i<=n;i++)
{
r2=A[i];
m2=m[i];
if(flag==true) continue;
d=Ex_gcd(m1,m2,x,y);
c=r2-r1;
if(c%d)
{
flag=true;
continue;
} x=c/d*x;
t=m2/d;
x=(x%t +t)%t;
r1=m1*x+r1;
m1=m1*m2/d;
}
if(flag==true)
{
printf("0\n");
return;
}
if(r1== && n>)
{
m1=m[];r1=m[];
for(i=;i<=n;i++)
m1=m1*m[i];
for(i=;i<=n;i++)
r1=gcd(r1,m[i]);
r1=m1/r1;//一个解
m1=r1;//最小公倍数
}
if(r1== && n==)
{
r1=m[];
m1=m[];
}
if(r1>M)
num=;
else
{
M=M-r1;
num=M/m1+;
}
printf("%I64d\n",num);
} int main()
{
__int64 T,N,M,i;
while(scanf("%I64d",&T)>)
{
while(T--)
{
scanf("%I64d%I64d",&M,&N);
for(i=;i<=N;i++)
scanf("%I64d",&m[i]); for(i=;i<=N;i++)
scanf("%I64d",&A[i]);
make_ini(N,M);
}
}
return ;
}
HDU X问题 中国剩余定理--求满足条件的个数的更多相关文章
- Biorhythms HDU - 1370 (中国剩余定理)
		
孙子定理: 当前存在三个式子,t%3=2,t%5=3,t%7=2.然后让你求出t的值的一个通解. 具体过程:选取3和5的一个公倍数t1能够使得这个公倍数t1%7==1,然后选取3和7的一个公倍数t2使 ...
 - HDU 5768 Lucky7 (中国剩余定理+容斥)
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5768 给你n个同余方程组,然后给你l,r,问你l,r中有多少数%7=0且%ai != bi. 比较明显 ...
 - hdu 5768 Lucky7  中国剩余定理+容斥+快速乘
		
Lucky7 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem D ...
 - hdu  4670  树的分治-求点对的个数
		
/* 树的分治 因为树的点权值可达到10^15,注意手动扩栈,还有int64 题意:给你一棵树,给你一些素数,给你每个点一个权值且每个权值均可由这些素数组成.现在定义任意任意两点的价值为他们路径上的权 ...
 - Coconuts HDU - 5925 (二维离散化求连通块的个数以及大小)
		
题目链接: D - Coconuts HDU - 5925 题目大意:首先是T组测试样例,然后给你n*m的矩阵,原先矩阵里面都是白色的点,然后再输入k个黑色的点.这k个黑色的点可能会使得原先白色的点 ...
 - hdu 1257 最少拦截系统 求连续递减子序列个数  (理解二分)
		
最少拦截系统 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
 - 中国剩余定理&Lucas定理&按位与——hdu 5446
		
链接: hdu 5446 http://acm.hdu.edu.cn/showproblem.php?pid=5446 题意: 给你三个数$n, m, k$ 第二行是$k$个数,$p_1,p_2,p_ ...
 - hdu 4878 ZCC loves words AC自动机+中国剩余定理+快速幂
		
题意就不说了. 分析:折腾好几天自己写的代码还是看了别人代码后发现几乎没什么复杂度的差别,可是就是一直超时,后来干脆照着别人写啊,一直WA,就在准备放弃干脆先写这篇博客的时候,又看了一眼WA的代码,发 ...
 - 礼物(中国剩余定理+拓展gcd求逆元+分治=拓展Lucus)
		
礼物 题意: 求\[C(n,m)\ \%\ p\] \(n,m,p\le 10^9\),且若\(p=\prod_{i=1}^{k}{p_i}^{c_i}\),则\(\forall i\in [1..k ...
 
随机推荐
- C语言 一些算法
			
1,斐波那契数列 ①递归 时间复杂度O(2^n)#include <stdio.h> int fib(int n){ ||n==) ; ) + fib(n-); } int main(){ ...
 - CentOS 7 Apache服务的安装与配置(转)
			
https://blog.51cto.com/13525470/2070375 一.Apache简介 Apache 是一个知名的开源Web服务器.早期的Apache服务器由Apache Group来维 ...
 - Linux 环境变量加强
			
Linux 环境变量加强 # 前言 今天,主要是之前搭建 GO 环境包的使用发现自己对 Linux 环境变量还不是很熟悉. 遇到环境变量的问题还是会有些懵逼.所以,今天写点Linux 环境变量的文章, ...
 - winserver2008安装tomcat+mysql+httpd+redis环境
			
1. 装tomcat和jdk http://www.cnblogs.com/SHI520/p/4546849.html 2. 安装mysql5.7 https://www.jb51.net/a ...
 - 关于找不到stdafx.h头文件问题(pass)
			
代码: #include "stdafx.h" #include "stdlib.h" char* getcharBuffer() { return " ...
 - 使用GPIO监听中断
			
#include<stdlib.h> #include<stdio.h> #include<string.h> #include<unistd.h> # ...
 - maven 打包 war 包含  WEB-INF/lib 目录
			
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactI ...
 - Maven自动FTP远程部署
			
参照官网文档: https://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ftp.html 1.在pom.xml中加入: ...
 - SpringMVC初写(六)静态资源设置
			
众所周知,SpringMVC的DispatchServlet是不可以以/*规则拦截请求的,否则会将JSP都拦截了,但有时候我们的请求路径是不能有后缀(Resful风格的接口需要),基于上述情况,我们可 ...
 - Mac下的浏览器类似Windows中Ctrl+F5的不请求缓存刷新页面的快捷键
			
正常方式: [shitf]+[command]+[r] 如果改过快捷键的: [fn]+[shift]+[command]+[f]