P3868 [TJOI2009]猜数字
中国剩余定理
求解i=1 to n : x≡a[i] (mod b[i])的同余方程组
设 t= ∏i=1 to n b[i]
我们先求出 i=1 to n : x≡1 (mod b[i]) ; j=1 to n,j≠i : x≡0 (mod b[j])的解
我们可以 把 t/b[i] y 代入 x 求解
ans= ∑i=1 to n : x[i]a[i]
中间过程可能爆long long所以用快速乘
(当然模数不互质的话就只能excrt了)
#include<iostream>
#include<cctype>
using namespace std;
typedef long long ll;
ll n,A[],B[],lcm,t=,X,Y,ans,m;
inline ll kmul(ll x,ll y){ //快速乘
ll tmp=x*y-(ll)((long double)x/t*y+1.0e-8)*t;
return tmp> ? tmp:tmp+t;
}
void exgcd(ll a,ll b,ll &x,ll &y){
if(!b) x=,y=;
else exgcd(b,a%b,y,x),y-=x*(a/b);
}
int main(){
cin>>n;
for(int i=;i<=n;++i) cin>>A[i];
for(int i=;i<=n;++i) cin>>B[i],t*=B[i];
for(int i=;i<=n;++i){
exgcd(B[i],m=t/B[i],X,Y);
ans=(ans+kmul(kmul(m,Y),A[i])%t+t)%t;
}cout<<ans;
}
P3868 [TJOI2009]猜数字的更多相关文章
- Luogu P3868 [TJOI2009]猜数字
题目链接 \(Click\) \(Here\) 中国剩余定理的板子.小心取模. #include <bits/stdc++.h> using namespace std; const in ...
- 洛谷P3868 [TJOI2009]猜数字(中国剩余定理,扩展欧几里德)
洛谷题目传送门 90分WA第二个点的看过来! 简要介绍一下中国剩余定理 中国剩余定理,就是用来求解这样的问题: 假定以下出现数都是自然数,对于一个线性同余方程组(其中\(\forall i,j\in[ ...
- 洛谷 P3868 [TJOI2009]猜数字
题意简述 给定\(a[1],a[2],\cdots,a[n]\) 和 \(b[1],b[2],\cdots,b[n]\),其中\(b\)中元素两两互素. 求最小的非负整数\(n\),满足对于任意的\( ...
- CRT【p3868】[TJOI2009]猜数字
Description 现有两组数字,每组k个,第一组中的数字分别为:a1,a2,...,ak表示,第二组中的数字分别用b1,b2,...,bk表示.其中第二组中的数字是两两互素的.求最小的非负整数n ...
- [TJOI2009]猜数字
题目描述 现有两组数字,每组k个,第一组中的数字分别为:a1,a2,...,ak表示,第二组中的数字分别用b1,b2,...,bk表示.其中第二组中的数字是两两互素的.求最小的非负整数n,满足对于任意 ...
- [Luogu3868] [TJOI2009]猜数字
题目描述 现有两组数字,每组k个,第一组中的数字分别为:a1,a2,...,ak表示,第二组中的数字分别用b1,b2,...,bk表示.其中第二组中的数字是两两互素的.求最小的非负整数n,满足对于任意 ...
- [TJOI2009]猜数字(洛谷 3868)
题目描述 现有两组数字,每组k个,第一组中的数字分别为:a1,a2,...,ak表示,第二组中的数字分别用b1,b2,...,bk表示.其中第二组中的数字是两两互素的.求最小的非负整数n,满足对于任意 ...
- [TJOI2009] 猜数字 - 中国剩余定理
现有两组数字,每组k个,第一组中的数字分别为:a1,a2,...,ak表示,第二组中的数字分别用b1,b2,...,bk表示.其中第二组中的数字是两两互素的.求最小的非负整数n,满足对于任意的i,n ...
- C语言猜数字游戏
猜数字游戏,各式各样的实现方式,我这边提供一个实现方式,希望可以帮到新手. 老程序猿就不要看了,黑呵呵 源代码1 include stdio.h include stdlib.h include ti ...
随机推荐
- 树形DP总结,持续更新
自己做了动态规划的题目已经有了一个月,但是成效甚微,所以来总结一下动态规划,希望自己能够温故知新.这个博客是关于树形dp的,动态规划的一类题目. 首先从最简单的树形DP入手,树形DP顾名思义就是一棵树 ...
- poj1269 intersecting lines【计算几何】
We all know that a pair of distinct points on a plane defines a line and that a pair of lines on a p ...
- hadoop(角色)各个组件配置信息
1)namenode: core-site.xml文件中决定: <property> <name>fs.def ...
- Docker基本命令与使用 —— Dockerfile指令与构建(三)
一.Dockerfile指令上 1.指令格式 # Comment 注释, 以#开头 INSTRUCTION argument 以大写的指令+参数 #First Dockerfile 注释 FROM u ...
- ArcGIS API for javascript开发笔记(五)——GP服务调用之GP模型的发布及使用详解
感谢一路走来默默陪伴和支持的你~~~ ----------------欢迎来访,拒绝转载---------------- 关于GP模型的制作请点我! 一.GP发布 ArcGIS Desktop可以作为 ...
- is_file file_exists microtime performance
对项目中旧代码的疑问 } elseif (substr($class_name, 0, 6) == 'OAuth2') { $file_name = $C->INCPATH . 'classes ...
- 添加用户username到sudo组
添加用户username到sudo组: usermod -aG sudo username USERMOD(8) 系统管理命令 USERMOD(8) 名 usermod - 修改一个用户账户 大 us ...
- PHP 接收筛选项包含0的select下拉菜单的处理
这种情况下,PHP的判断方法如下: $where = "1=1"; if ($get['status'] !== '' && $get['status'] !== ...
- SQLAlchemy通过models创建数据库表
原地址:http://blog.csdn.net/jmilk/article/details/53184903 定义数据模型 models SQLAlchemy 允许我们根据数据库的表结构来创建数据模 ...
- Knight Moves(hdu1372 bfs模板题)
http://acm.hdu.edu.cn/showproblem.php?pid=1372 Knight Moves Time Limit: 2000/1000 MS (Java/Others) ...