[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,求![](https://images2018.cnblogs.com/blog/1330878/201805/1330878-20180526212011017-1327546933.png)对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

最新文章

  1. 介绍开源的.net通信框架NetworkComms框架 源码分析(八)SharpZipLibGzipCompressor
  2. TreeMap按照key排序
  3. jq each 用法以及js与json互转
  4. hbase读写流程
  5. Ruby实现wordCounter
  6. 【递归】数字三角形 简单dp
  7. CSS实现半透明的方法
  8. 前端模块化开发学习之gulp&browserify篇
  9. 通过ctypes获得python windows process的内存使用情况
  10. net破解一(反编译,反混淆-剥壳,工具推荐)
  11. sql server数据库查询同义词
  12. php的过滤器功能
  13. SQL练习题题目
  14. 去掉 Chrome(V66) 新标签页的8个缩略图
  15. Oracle入门知识
  16. [COCI2013]DLAKAVAC
  17. 构造&析构
  18. 2D转换下的zoom和transform:scale的区别
  19. 8 个基于 Lucene 的开源搜索引擎推荐
  20. Spring(十六):泛型依赖注入

热门文章

  1. centos7 源码安装 MongoDb
  2. 怎样理解DOM
  3. Caffe测试单独的算子
  4. 5.Hibernate 核心开发接口
  5. 第十章、datetime模块
  6. linux网络协议栈(四)链路层 vlan处理
  7. deep_learning_neural network梯度下降
  8. centos7中的网卡名称相关知识
  9. 使用ViewPager实现导航
  10. three.js之创建坐标系网格