Codeforces 963 A. Alternating Sum(快速幂,逆元)
[Codeforces 963 A. Alternating Sum](http://codeforces.com/problemset/problem/963/A)
题目大意:给出一组长度为n+1且元素为1或者-1的数组S(0~n),数组每k个元素为一周期,保证n+1可以被k整除。给a和b,求对1e9+9取模的结果
思路:容易想到,每个周期的∑组成的数列成等比,公比q=(b/a)^k,因此可以用等比数列公式求和。为了保证时间复杂度,需要用到快速幂运算;为了防止中间过程值溢出,需要多处取模,其中用费马小定理求逆元;
代码:
```C++
#include
#include
#include
using namespace std;
typedef long long ll;
const int mod=1e9+9;
ll qpow(ll x,ll n,ll m)
{
ll res=1;
while (n>0)
{
if (n&1)
res=res*x%m;
n>>=1;
x=x*x%m;
}
return res;
}
ll inv(ll x,ll m)
{
return qpow(x,m-2,m);
}
int main()
{
int n,a,b,k,i;
cin>>n>>a>>b>>k;
cin.get();
ll ft=0,q,ans;
for (i=0;i
Codeforces 963 A. Alternating Sum(快速幂,逆元)的更多相关文章
- HDU 5685 Problem A | 快速幂+逆元
Problem A Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
- 2016 Asia Jakarta Regional Contest J - Super Sum UVALive - 7720 【快速幂+逆元】
J-Super Sum 题目大意就是给定N个三元组<a,b,c>求Σ(a1^k1*a2^k2*...*ai^ki*..an^kn)(bi<=ki<=ci) 唉.其实题目本身不难 ...
- Open judge C16H:Magical Balls 快速幂+逆元
C16H:Magical Balls 总时间限制: 1000ms 内存限制: 262144kB 描述 Wenwen has a magical ball. When put on an infin ...
- codeforces magic five --快速幂模
题目链接:http://codeforces.com/contest/327/problem/C 首先先算出一个周期里面的值,保存在ans里面,就是平常的快速幂模m做法. 然后要计算一个公式,比如有k ...
- 【牛客小白月赛6】F 发电 - 树状数组&快速幂&逆元
题目地址:https://www.nowcoder.com/acm/contest/136/F 树状数组.快速幂.逆元的模板运用: #include<iostream> #include& ...
- 【牛客小白月赛6】 J 洋灰三角 - 快速幂&逆元&数学
题目地址:https://www.nowcoder.com/acm/contest/136/J 解法一: 推数学公式求前n项和: 当k=1时,即为等差数列,Sn = n+pn(n−1)/2 当k≠1时 ...
- POJ 1845:Sumdiv 快速幂+逆元
Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 16466 Accepted: 4101 Descripti ...
- 【codeforces 623E】dp+FFT+快速幂
题目大意:用$[1,2^k-1]$之间的证书构造一个长度为$n$的序列$a_i$,令$b_i=a_1\ or\ a_2\ or\ ...\ or a_i$,问使得b序列严格递增的方案数,答案对$10^ ...
- hdu5698瞬间移动(杨辉三角+快速幂+逆元)
瞬间移动 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submis ...
随机推荐
- javascript——创建对象的方式
对象:在JavaScript中,对象是拥有属性和方法的数据. JavaScript自定义对象方式有以下7种:直接创建方式.对象初始化器方式.构造函数方法.prototype原型方式.混合的构造函数/原 ...
- python 中英文时间转换
上例子:time='Friday, November 18, 2016',将其转换为标准格式: time_format = datetime.datetime.strptime(time, '%A, ...
- 这是一个用于判断IE浏览器版本的紧凑脚本
这是一个用于判断IE浏览器版本的紧凑脚本IE浏览器,不管它们是什么版本,总是与Web标准有些不兼容.对于编码人员来说,这很困难.为了考虑IE的兼容性,不管它是写CSS还是写JS,IE通常都会被特殊处理 ...
- mintUI和mUI
mintUI 安装: npm install mint-ui -S 引入: // 按需引入部分组件 import { Cell, Checklist } from 'mint-ui'; Vue.com ...
- springboot 自动装配
以下内容部分来自小马哥的 <springboot 编程思想> 基础 springboot 项目 maven 依赖 <dependency> <groupId>org ...
- 前端imageBuffer设置图片src(后端返回二进制流图片)
参考地址1:前端imageBuffer设置图片src(后端到前端直传buffer) 参考地址2:axios根据流生成图片 本质为buffer转base64 // 获取项目截图 getItemPic() ...
- 3.java并发包
1.java并发包介绍 JDK5.0 以后的版本都引入了高级并发特性,大多数的特性在java.util.concurrent 包中,是专门用于多线程并发编程的,充分利用了现代多处理器 和多核心系统的功 ...
- C语言-数字字符串转换成这个字符串对应的数字(十进制、十六进制)
数字字符串转换成这个字符串对应的数字(十进制.十六进制) (1)数字字符串转换成这个字符串对应的数字(十进制) 要求:这个字符串参数必须包含一个或者多个数字,函数应该把这些数字转换为整数并且返回这个整 ...
- 转PostgreSQL 用游标优化的一个例子
一位PG社区的朋友提到的一个应用场景,目前遇到性能问题. 数据结构大概是这样的,包含一个主键,一个数组,一个时间,其他字段. 请求分析: 有检索需求,比较频繁.查找数组中包含某些元素的记录,并按时间排 ...
- 《Python基础教程》第六章:抽象(一)
用def定义函数 __doc__是函数属性.属性名中的双下划线表示它是个特殊属性