Least Common Multiple http://acm.hdu.edu.cn/showproblem.php?pid=1019

 #include<cstdio>
int gcd(int a,int b){
return b?gcd(b,a%b):a;
}
int lcm(int a,int b){
return a/gcd(a,b)*b;
}
int main(){
int n,m,ans,x;
while(~scanf("%d",&n)){
while(n--){
ans=;
scanf("%d",&m);
while(m--){
scanf("%d",&x);
ans=lcm(ans,x);
}
printf("%d\n",ans);
}
}
return ;
}

Turn the pokers http://acm.hdu.edu.cn/showproblem.php?pid=4869

 #include<cstdio>
#include<algorithm>
using namespace std;
typedef __int64 LL;
const int M=;
const int mod=;
int ext_gcd(int a,int b,int &x,int &y){//扩展gcd d=gcd(a,b)=a*x+b*y; return d,x,y;
int t,ret;
if(!b){
x=;
y=;
return a;
}
ret=ext_gcd(b,a%b,x,y);
t=x;
x=y;
y=t-a/b*y;
return ret;
}
int inv(int a,int b,int c){//ext_gcd求逆元 (b/a)%c
int x,y;
ext_gcd(a,c,x,y);
return (1LL*x*b%c+c)%c;
}
LL C[M];
LL INV[M];
int main() {
for(int i=; i<M; i++) {
INV[i]=inv(i,,mod);
}
int n,m,a;
while(~scanf("%d%d",&n,&m)) {
C[]=;
for(int i=;i<=m;i++){
C[i]=C[i-]*(m-i+)%mod*INV[i]%mod;
}
int L=,R=,nl,nr,tmp;
for(int i=;i<n;i++){
scanf("%d",&a);
tmp=min(m-L,a);
nr=L+tmp-(a-tmp);
tmp=min(R,a);
nl=R-tmp+(a-tmp);
if(nl>nr) swap(nl,nr);
if(L<=a&&a<=R){
if(L%==a%){
nl=;
}
else{
nl=min(nl,);
}
}
if((m-R)<=a&&a<=(m-L)){
if((m-L)%==a%){
nr=m;
}
else{
nr=max(nr,m-);
}
}
if(L>=a) nl=min(nl,L-a);
if(m-R>=a) nr=max(nr,R+a);
L=nl;
R=nr;
}
int ans=;
for(int i=L;i<=R;i+=){
ans+=C[i];
ans%=mod;
}
printf("%d\n",ans);
}
return ;
}
 #include<cstdio>
#include<algorithm>
using namespace std;
typedef __int64 LL;
const int M=;
const int mod=;
LL C[M];
LL INV[M];
void inv_init(){//初始化%mod的乘法逆元
INV[]=;
for(int i=;i<M;i++){
INV[i]=INV[mod%i]*(mod-mod/i)%mod;
}
}
int main() {
inv_init();
int n,m,a;
while(~scanf("%d%d",&n,&m)) {
C[]=;
for(int i=;i<=m;i++){
C[i]=C[i-]*(m-i+)%mod*INV[i]%mod;
}
int L=,R=,nl,nr,tmp;
for(int i=;i<n;i++){
scanf("%d",&a);
tmp=min(m-L,a);
nr=L+tmp-(a-tmp);
tmp=min(R,a);
nl=R-tmp+(a-tmp);
if(nl>nr) swap(nl,nr);
if(L<=a&&a<=R){
if(L%==a%){
nl=;
}
else{
nl=min(nl,);
}
}
if((m-R)<=a&&a<=(m-L)){
if((m-L)%==a%){
nr=m;
}
else{
nr=max(nr,m-);
}
}
if(L>=a) nl=min(nl,L-a);
if(m-R>=a) nr=max(nr,R+a);
L=nl;
R=nr;
}
int ans=;
for(int i=L;i<=R;i+=){
ans+=C[i];
ans%=mod;
}
printf("%d\n",ans);
}
return ;
}

end

gcd,lcm,ext_gcd,inv的更多相关文章

  1. HDU4497 GCD and LCM(数论,质因子分解)

    HDU4497 GCD and LCM 如果 \(G \% L != 0\) ,那么输出 \(0\) . 否则我们有 \(L/G=(p_1^{r_1})\cdot(p_2^{r_2})\cdot(p_ ...

  2. HDU 4497 GCD and LCM (数学,质数分解)

    题意:给定G,L,分别是三个数最大公因数和最小公倍数,问你能找出多少对. 析:数学题,当时就想错了,就没找出规律,思路是这样的. 首先G和L有公因数,就是G,所以就可以用L除以G,然后只要找从1-(n ...

  3. 【基础数学】质数,约数,分解质因数,GCD,LCM

    1.质数: 质数(prime number)又称素数,有无限个.一个大于1的自然数,除了1和它本身外,不能整除以其他自然数(质数),换句话说就是该数除了1和它本身以外不再有其他的因数. 2.约数: 如 ...

  4. SPOJ LGLOVE 7488 LCM GCD Love (区间更新,预处理出LCM(1,2,...,n))

    题目连接:http://www.spoj.com/problems/LGLOVE/ 题意:给出n个初始序列a[1],a[2],...,a[n],b[i]表示LCM(1,2,3,...,a[i]),即1 ...

  5. ACM数论之旅3---最大公约数gcd和最小公倍数lcm(苦海无边,回头是岸( ̄∀ ̄))

    gcd(a, b),就是求a和b的最大公约数 lcm(a, b),就是求a和b的最小公倍数 然后有个公式 a*b = gcd * lcm     ( gcd就是gcd(a, b), ( •̀∀•́ ) ...

  6. 数学--数论--HDU 5382 GCD?LCM?(详细推导,不懂打我)

    Describtion First we define: (1) lcm(a,b), the least common multiple of two integers a and b, is the ...

  7. LightOj 1236 - Pairs Forming LCM (分解素因子,LCM )

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1236 题意:给你一个数n,求有多少对(i,  j)满足 LCM(i, j) = n, ...

  8. GCD SUM 强大的数论,容斥定理

    GCD SUM Time Limit: 8000/4000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) SubmitStatu ...

  9. OC 线程操作 - GCD使用 -同步函数,异步函数,串行队列,并发队列

    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ // GCD 开几条线程并不是我们 ...

  10. 【UOJ#33】【UR #2】树上GCD(长链剖分,分块)

    [UOJ#33][UR #2]树上GCD(长链剖分,分块) 题面 UOJ 题解 首先不求恰好,改为求\(i\)的倍数的个数,最后容斥一下就可以解决了. 那么我们考虑枚举一个\(LCA\)位置,在其两棵 ...

随机推荐

  1. OC3_协议关键字

    // // Student.h // OC3_协议关键字 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zhangx ...

  2. 你应该知道的9个优秀的CSS框架

    前端开发是一项非常繁琐的工作,你不仅需要拥有和别人不一样的审美观和设计观,而且需要了解诸如HTML.CSS.JavaScript等错综复杂的技术,因此选择一些优秀的CSS框架或许可以帮助你大大提高工作 ...

  3. android网络编程

    android的网络编程分为2种:基于socket的,和基于http协议的. 基于socket的用法 服务器端: 先启动一个服务器端的socket     ServerSocket svr = new ...

  4. [笔记] MySql Workbench 导出表结构和数据报错 mysqldump: [ERROR] unknown variable 'delayed-insert=FALSE'

    下午使用MySql Workbench导出数据库表结构,设置完导出选项后执行导出,报如下错误: :: Dumping nacweixindb (tb_app) Running: mysqldump.e ...

  5. 第四届蓝桥杯C/C++A组题目:振兴中华

    首先把题目贴上来吧! 小明参加了学校的趣味运动会,其中的一个项目是:跳格子. 地上画着一些格子,每个格子里写一个字,如下所示:(也可参见图1) 从我做起振 我做起振兴 做起振兴中 起振兴中华 图1 比 ...

  6. Linux多命令协作:管道及重定向

  7. 【Qt】命令行编译Qt程序(nmake)【转】

    简述 前两节讲解了如何在Visual Studio和Qt Creator中搭建Qt开发环境,并分享了我们第一个小程序-Hello World. 下面分享如何使用命令行来编译Qt程序.当然,MSVC和M ...

  8. LINQ技巧:如何通过多次调用GroupBy实现分组嵌套

    问题如上,解决如下,目标在最下面:结果: using System; using System.Linq; using System.Collections.Generic; namespace Co ...

  9. getMeasuredHeight() 与 getHeight() 的区别

    http://www.cnblogs.com/x-dev/p/3767538.html?utm_source=tuicool&utm_medium=referral public final ...

  10. PHP -Session 深入解剖 ① session的基本操作 【大成出品 --必是精品】。

    Session的初步介绍 1  Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的不同浏览器(一个用户的不同浏览器将生成不同的session文件)创建一个其独享的sessio ...