• 题目链接:http://codeforces.com/contest/964/problem/C
  • 题意:给你四个整数和一个字符串,求数列和: 膜1e9+9的正数结果
    • n——数列项数从第0项到第n项
    • a、b如上式子
    • k——数列的周期,k可整除n+1
    • 字符串s,表示项数的正负
  • 算法:数论——等比数列
  • 思维素材:需要得到正数结果时,最好把公式化成方便得到正数的形式

#include <bits/stdc++.h>
#define pi acos(-1)
#define fastcin ios::base_sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
using namespace std;
typedef long long LL;
typedef pair<int,int> Pii;
const int INF = 0x3f3f3f3f;
const int maxn = 1e5+10;
const int mod = 1e9 + 9;void exgcd(LL a, LL b, LL &x, LL &y)    //拓展欧几里得算法
{if(!b) x = 1, y = 0;else{exgcd(b, a % b, y, x);y -= x * (a / b);}
}LL inv(LL a, LL b)   //求a对b取模的逆元
{LL x, y;exgcd(a, b, x, y);return (x + b) % b;
}LL fpow(LL a, LL n, LL p)    //快速幂 a^n % p
{LL ans = 1;while(n){if(n & 1) ans = ans * a % p;a = a * a % p;n >>= 1;}return ans;
}int main()
{LL n, a, b, k;string s;scanf("%I64d%I64d%I64d%I64d", &n, &a, &b, &k);cin >> s;LL INVa = inv(a, mod);LL q = fpow(INVa*b%mod, k, mod);LL tmp=0;if(q==1) tmp = (n+1)/k;else {tmp = ( tmp+ (fpow(q, (n+1)/k, mod)-1) * inv(q-1, mod) )%mod;}//cout << tmp << endl;LL ans=0;for(int i=0; i<k; i++){LL sign = (s[i]=='+'?1:-1);ans = ( ans + fpow(a, n-i, mod)*fpow(b, i, mod)%mod*tmp%mod*sign )%mod;}printf("%I64d\n", (ans+mod)%mod);
}

C. Alternating Sum(数论——等比数列公式与变换)相关推荐

  1. Tinkoff Internship Warmup Round 2018 and Codeforces Round #475 (Div. 2) C.Alternating Sum(等比数列求和)

    题目链接;点击打开链接 题目大意:给出一个数列s,其中的元素为s1,s2,s3......sn.元素要么是1(用'+'表示),要么是-1(用'-'表示) 这个数列以k个数为一个周期,且n能被k整除. ...

  2. CF963A Alternating Sum

    Alternating Sum 题目传送门 思路:这道题呀,需要涉及到两个数学知识,一是逆元,二是等比数列求和公式. 一:逆元 我们知道 mod 这个东西在题目中时常出现,他可以用于加法,减法,乘法, ...

  3. Codeforces 963A Alternating Sum 【数论+数学】

    官方题解这个样子我觉得说得比较清楚.Z我们可以朴素的预处理出来(注意乘法膜),q的话考点在于[分数取膜]即 (a/b)%P = a* inverse of b %P 这就涉及到算b的逆元,我用的是欧几 ...

  4. HTML如何表自动求和,sum汇总求和公式 格式设置为常规就可以了

    excelCSS布局HTML小编今天和大家分享和公式 excel 的sumCSS布局HTML小编今天和大家分享和公式 在excel中大家都知道,第5列是E列,CSS布局HTML小编今天和大家分享和公式 ...

  5. 等差数列-等比数列公式和前n项和公式

    等差数列公式:an=a1+(n-1)d,(n为正整数) a1为首项,an为第n项的通项公式,d为公差. 前n项和公式为:Sn=na1+n(n-1)d/2,(n为正整数) Sn=n(a1+an)/2,( ...

  6. CodeForces - 1459C Row GCD(数论+推公式)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的数组 aaa,再给出一个长度为 mmm 的数组 bbb,现在要求输出,当 j=1,2,...,mj = 1,2,...,mj=1,2,...,m ...

  7. bzoj 1257: [CQOI2007]余数之和sum 数论

    1257: [CQOI2007]余数之和sum Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnlin ...

  8. [bzoj] 1257 余数之和sum || 数论

    原题 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + - + k mod n的值,其中k mod i表示k除以i的余数. \(\sum^n_{i=1} ...

  9. 等比数列公式对数的运算

    题目描述 小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦.已知小玉第一步能游2米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的98%.现在小玉想知道,如果 ...

  10. 算法学习FFT系列(2):快速数论变换NTT bzoj3992: [SDOI2015]序列统计例题详解

    bzoj3992: [SDOI2015]序列统计 Description 小C有一个集合S,里面的元素都是小于M的非负整数.他用程序编写了一个数列生成器,可以生成一个长度为N的数列,数列中的每个数都属 ...

最新文章

  1. 如何在Leangoo中,为企业创建项目
  2. CSS揭秘之《背景图案》
  3. (转载)网络抓包原理及常用抓包工具
  4. 10.PHP加密相关
  5. android adb启动不了
  6. 科大星云诗社动态20210402
  7. 简述ospf的工作原理_简述洛氏硬度计的工作原理及应用领域
  8. Linux的 i2c 驱动框架分析
  9. 简洁的个人导航主页API网站源码 随机背景图
  10. ECCV2020 | Cityscapes上83.7 mIoU,通过解耦的主体和边缘监督改进语义分割
  11. 网络协议从入门到底层原理(5)传输层(UDP、TCP - 可靠传输、流量控制、拥塞控制、建立连接、释放连接)
  12. python清屏命令-python清屏命令
  13. jrtplib java,jrtplib 分包处理
  14. 平面设计和3D建模哪个好找工作?
  15. idea中webapp无法添加到mian文件夹中
  16. Django项目报错记录1
  17. 【刷机】小米降级刷机 线刷 图解 MIUI降级刷机
  18. 用qt做网易云音乐--01标题栏实现
  19. VeryCD挥别影视做游戏 月入亿元转型成功
  20. fiddler抓包过程以及fiddler抓包手机添加代理后连不上网解决办法

热门文章

  1. php gd ttf,linux gd php TTF字体
  2. 搜狗输入法候选窗口不跟随光标
  3. 条件随机场介绍(2)—— An Introduction to Conditional Random Fields
  4. python人物出场统计实例_实例2之《三国演义》人物出场统计
  5. 服务器蓝屏的原因及解决办法
  6. 2021-泛微OA V8 SQL注入漏洞
  7. c语言中如何找坐标,如何在C语言中找到四个坐标并擦除RubberBand矩形的绘图#
  8. 【物联网方案】智慧鸡舍功能及特点
  9. E哥的Git教程(一)
  10. 说说那些好用的图片调色软件