【数学】XMU 1597 GCD
题目链接:
http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1597
题目大意:
求(am-bm, an-bn),结果取模1000000007,a,b互质(1<=b < a<= 1018,1<=m,n<=1018)
题目思路:
【数论】
gcd(am-bm,an-bn) mod p=(agcd(m,n)-bgcd(m,n))mod p=(a mod p)gcd(m,n) mod(p-1)-(b mod p)gcd(m,n) mod(p-1)。
快速幂。
//
//by coolxxx
//
#include<iostream>
#include<algorithm>
#include<string>
#include<iomanip>
#include<memory.h>
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<stdbool.h>
#include<math.h>
#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))
#define abs(a) ((a)>0?(a):(-(a)))
#define lowbit(a) (a&(-a))
#define sqr(a) ((a)*(a))
#define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b))
#define eps 1e-8
#define J 10
#define MAX 0x7f7f7f7f
#define PI 3.1415926535897
#define mod 1000000007
using namespace std;
long long n,m,lll,ans,cas;
long long a,b,aa,bb;
long long gcd(long long a,long long b)
{
if(!b)return a;
return gcd(b,a%b);
}
long long quickpow(long long a,long long n)
{
long long c=a,t=;
while(n)
{
if(n&)t=(t*c)%mod;
c=(c*c)%mod;
n>>=;
}
return t;
}
int main()
{
#ifndef ONLINE_JUDGE
// freopen("1.txt","r",stdin);
// freopen("2.txt","w",stdout);
#endif
int i,j,k;
// while(~scanf("%s",s1))
// while(~scanf("%d",&n))
// for(scanf("%d",&cas),l=1;l<=cas;l++)
while(~scanf("%lld%lld%lld%lld",&a,&b,&m,&n))
{
a=(a-)%mod+;
b=(b-)%mod+;
lll=gcd(m,n)%(mod-);
aa=quickpow(a,lll);
bb=quickpow(b,lll);
ans=(aa-bb+mod)%mod;
printf("%lld\n",ans);
}
return ;
}
【数学】XMU 1597 GCD的更多相关文章
- 数学(动态规划,GCD):COGS 469. [NOI2010]能量采集
能量采集 ★★☆ 输入文件:energy2010.in 输出文件:energy2010.out 简单对比 时间限制:1 s 内存限制:512 MB [问题描述] 栋栋有一块长方形的地, ...
- Tony的口胡呼呼(。-ω-)zzz
三分 给定平面内 \(n <= 2000\) 个节点, 求平面内一点使得到所有点的欧几里得距离和最小 确定 \(y\) 轴时 \(x\) 轴满足单峰函数 \(x\) 轴同理 三分套三分即可 深度 ...
- 数位DP复习小结
转载请注明原文地址http://www.cnblogs.com/LadyLex/p/8490222.html 之前学数位dp的时候底子没打扎实 虚的要死 这次正好有时间……刷了刷之前没做的题目 感觉自 ...
- 2014 SCAU_ACM 暑期集训
暑期集训,希望能在这段时间获得对得起自己的提升吧 时间:7.11~8.30 集训各专题内容: 1.贪心,递推,基础DP(背包,区间DP,状态压缩DP(去年出了不少于2道铜牌题,看着办)) 2.搜索(B ...
- 【数学】XMU 1593 找数字
题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1593 题目大意: T组数据,n个数,只有一种出现q次,其余的出现p次.(1<=T ...
- 数学 赛码 1010 GCD
题目传送门 /* 数学:官方题解 首先,数组中每个元素至少是1 然后对于任意一个询问Li, Ri, Ansi, 说明Li ~ Ri中的元素必定是Ansi的倍数,那么只需将其与Ansi取最小公倍数即可 ...
- 【数学】【模拟】XMU 1044 伪伪随机数产生器
题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1044 题目大意: 求首项为0,公比为x的等差数列组成的数字条的第y位数字是几.(x,y ...
- HDU 5869 Different GCD Subarray Query 树状数组 + 一些数学背景
http://acm.hdu.edu.cn/showproblem.php?pid=5869 题意:给定一个数组,然后给出若干个询问,询问[L, R]中,有多少个子数组的gcd是不同的. 就是[L, ...
- HDU 5726 GCD (2016多校、二分、ST表处理区间GCD、数学)
题目链接 题意 : 给出一个有 N 个数字的整数数列.给出 Q 个问询.每次问询给出一个区间.用 ( L.R ) 表示.要你统计这个整数数列所有的子区间中有多少个和 GCD( L ~ R ) 相等.输 ...
随机推荐
- Cocostudio学习笔记(1) 扯扯蛋 + 环境搭建
转眼七月份就到了,2014已经过了一半,而我也最终算是有"一年工作经验"了,开心ing. 回想这一年Cocos2dx的游戏开发经历,去年下半年重心主要在游戏的逻辑上,而今年上半年重 ...
- 用PHP迭代器来实现一个斐波纳契数列(转)
斐波纳契数列通常做法是用递归实现,当然还有其它的方法.这里现学现卖,用PHP的迭代器来实现一个斐波纳契数列,几乎没有什么难度,只是把类里的next()方法重写了一次.注释已经写到代码中,也是相当好理解 ...
- POJ 2891 扩展欧几里德
这个题乍一看跟剩余定理似的,但是它不满足两两互素的条件,所以不能用剩余定理,也是给了一组同余方程,找出一个X满足这些方程,如果找不到的话就输出-1 因为它不满足互素的条件,所以两个两个的合并,最后合成 ...
- android TimerTask 的简单应用,以及java.lang.IllegalStateException: TimerTask is scheduled already错误的解决方法【转】
Android应用开发中常常会用到定时器,不可避免的需要用到 TimerTask 定时器任务这个类下面简单的一个示例演示了如何使用TimerTask这个示例演示了3秒未有触屏事件发生则锁屏(只是设置下 ...
- 【开源java游戏框架libgdx专题】-15-系统控件-Button类
Button类继承与Actor类,可以在舞台中使用,但是它也继承了许多Actor的子类,如Group.Table.WidgetGroup灯. 常用构造方法: Button():创建按钮对象,不设置其样 ...
- HTML5 离线缓存
离线资源缓存 为了能够让用户在离线状态下继续访问 Web 应用,开发者需要提供一个 cache manifest 文件.这个文件中列出了所有需要在离线状态下使用的资源,浏览器会把这些资源缓存到本地. ...
- DownloadProvider调试
由于身边的同事离职,最近又接手了一个模块,DownloadProvider, 也就是安卓中自带的下载管理.此模块的代码量比较少,但是最近阅读代码却发现还是由不少知识点的.之前同事在此模块做了一个关于D ...
- WebAPI下的如何实现参数绑定
本文将概述在WebAPI方式下将如何将参数绑定到一个action方法,包括参数是如何被读取,一系列规则决定特定环境采用的那种绑定方式,文章最后将给出一些实际的例子. Parameter binding ...
- winform下调用webservice,传参List<string>
用c#做了一个webservice,其中一个接口是public bool AddReturns(List<string> SQLStringList). 然后在另一个c#做的winform ...
- $().change事件
change([[data],fn]) 当元素的value值发生改变时发生change事件 适用于: 文本域 text textarea和select元素 text textarea 元素失去焦点时发 ...