HDOJ1573X问题
https://acm.hdu.edu.cn/showproblem.php?pid=1573
n组线性同余方程求解,最后求出多少解。而最终的解的周期为最小公倍数,范围内的,需要这样算。如果最小超过,那么直接是0,如果无解为0,如果最小为0,那么直接为k个lcm,否则要加上自身的1,因为要求为正整数解。
1 #include<bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 ll t,n,m,a1,b1,a2,b2,c,k,ans;
5 const int N=52;
6 ll s[N],r[N];
7 ll ex_gcd(ll a,ll b,ll &x,ll &y)
8 {
9 if(!b){x=1,y=0;return a;};
10 ll d=ex_gcd(b,a%b,x,y);
11 ll tmp=x;
12 x=y,y=tmp-a/b*y;
13 return d;
14 }
15 int main()
16 {
17 scanf("%lld",&t);
18 while(t--)
19 {
20 ll x,y,a,b;
21 bool flag=true;
22 scanf("%lld%lld",&n,&m);
23 for(int i=1;i<=m;i++) scanf("%lld",&s[i]);
24 for(int i=1;i<=m;i++) scanf("%lld",&r[i]);
25 a1=s[1],b1=r[1];
26 for(int i=2;i<=m;i++)
27 {
28 a2=s[i],b2=r[i];
29 a=a1,b=a2,c=b2-b1;
30 ll d=ex_gcd(a,b,x,y);
31 if(c%d!=0) {cout<<0<<'\n';flag=0;break;}
32 k=b/d;
33 x=(x*(c/d)%k+k)%k;
34 b1=a1*x+b1;
35 a1=a1*(a2/d);
36 }
37 if(flag)
38 {
39 if(n-b1<0) cout<<0<<'\n';
40 else
41 {
42 ans=(n-b1)/a1+(b1!=0);
43 cout<<ans<<'\n';
44 }
45 }
46 }
47 return 0;
48 }
HDOJ1573X问题的更多相关文章
随机推荐
- centos7部署二进制mysql-5.6
目录 一.环境声明 二.程序部署 一.环境声明 [mysql-Server] 主机名 = host-1 系统 = centos-7.3 地址 = 1.1.1.1 软件 = mysql-5.6.39 3 ...
- myeclipse 给类与方法添加注解模板方法
myeclipse 给类与方法添加注解模板方法 步骤1:点击myeclipse 界面的[Window]菜单 步骤2:点击下拉菜单的[Preferences]选项 步骤3:展开左边菜单的[java]选项 ...
- 基于GDI和D3D的抓屏技术
GDI32Api.Direct3D屏幕截图 最近因为工作需要,认真研究了一下屏幕截图的方法. 最主要的方法有两种,一.调用windows GDI32 API函数.二.使用DirectX9.0来实现. ...
- docker启动redis报错 oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
docker启动redis报错 1:C 17 Jun 08:18:04.613 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo1:C 17 Jun 08 ...
- Elasticsearch 和 solr 的区别
背景:它们都是基于Luence搜索服务器基础之上开发的一款优秀高性能的企业级搜索服务器.也都是基于分词技术构建的倒排索引的方式进行查询 开发语言:java 诞生时间: solr :2004年 es ...
- Windows系统安装Redis服务
下载压缩包,登录 https://github.com/MicrosoftArchive/redis/releases 下载Redis-x64-3.0.504.zip 我也上传了一份 https: ...
- 1434 区间LCM
1434 区间LCM 基准时间限制:1 秒 空间限制:131072 KB 一个整数序列S的LCM(最小公倍数)是指最小的正整数X使得它是序列S中所有元素的倍数,那么LCM(S)=X. 例如,LCM(2 ...
- python学习第六天:python基础(dict、set)
dict dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度 创建&取值 为什么dict查找速度这么快? 因为 ...
- React MobX 开始
MobX 用于状态管理,简单高效.本文将于 React 上介绍如何开始,包括了: 了解 MobX 概念 从零准备 React 应用 MobX React.FC 写法 MobX React.Compon ...
- 精通 MySQL 索引
索引概念: 概念:索引是提高mysql查询效率的数据结构.总的一句话概括就是索引是一种提高查询效率的数据结构. 数据库查询是数据库的最主要功能之一.设计者们都希望查询数据的速度能尽可能的快,因此数据库 ...