C. Alternating Sum(数论——等比数列公式与变换)
- 题目链接: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(数论——等比数列公式与变换)相关推荐
- Tinkoff Internship Warmup Round 2018 and Codeforces Round #475 (Div. 2) C.Alternating Sum(等比数列求和)
题目链接;点击打开链接 题目大意:给出一个数列s,其中的元素为s1,s2,s3......sn.元素要么是1(用'+'表示),要么是-1(用'-'表示) 这个数列以k个数为一个周期,且n能被k整除. ...
- CF963A Alternating Sum
Alternating Sum 题目传送门 思路:这道题呀,需要涉及到两个数学知识,一是逆元,二是等比数列求和公式. 一:逆元 我们知道 mod 这个东西在题目中时常出现,他可以用于加法,减法,乘法, ...
- Codeforces 963A Alternating Sum 【数论+数学】
官方题解这个样子我觉得说得比较清楚.Z我们可以朴素的预处理出来(注意乘法膜),q的话考点在于[分数取膜]即 (a/b)%P = a* inverse of b %P 这就涉及到算b的逆元,我用的是欧几 ...
- HTML如何表自动求和,sum汇总求和公式 格式设置为常规就可以了
excelCSS布局HTML小编今天和大家分享和公式 excel 的sumCSS布局HTML小编今天和大家分享和公式 在excel中大家都知道,第5列是E列,CSS布局HTML小编今天和大家分享和公式 ...
- 等差数列-等比数列公式和前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,( ...
- CodeForces - 1459C Row GCD(数论+推公式)
题目链接:点击查看 题目大意:给出一个长度为 nnn 的数组 aaa,再给出一个长度为 mmm 的数组 bbb,现在要求输出,当 j=1,2,...,mj = 1,2,...,mj=1,2,...,m ...
- bzoj 1257: [CQOI2007]余数之和sum 数论
1257: [CQOI2007]余数之和sum Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnlin ...
- [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} ...
- 等比数列公式对数的运算
题目描述 小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦.已知小玉第一步能游2米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的98%.现在小玉想知道,如果 ...
- 算法学习FFT系列(2):快速数论变换NTT bzoj3992: [SDOI2015]序列统计例题详解
bzoj3992: [SDOI2015]序列统计 Description 小C有一个集合S,里面的元素都是小于M的非负整数.他用程序编写了一个数列生成器,可以生成一个长度为N的数列,数列中的每个数都属 ...
最新文章
- 如何在Leangoo中,为企业创建项目
- CSS揭秘之《背景图案》
- (转载)网络抓包原理及常用抓包工具
- 10.PHP加密相关
- android adb启动不了
- 科大星云诗社动态20210402
- 简述ospf的工作原理_简述洛氏硬度计的工作原理及应用领域
- Linux的 i2c 驱动框架分析
- 简洁的个人导航主页API网站源码 随机背景图
- ECCV2020 | Cityscapes上83.7 mIoU,通过解耦的主体和边缘监督改进语义分割
- 网络协议从入门到底层原理(5)传输层(UDP、TCP - 可靠传输、流量控制、拥塞控制、建立连接、释放连接)
- python清屏命令-python清屏命令
- jrtplib java,jrtplib 分包处理
- 平面设计和3D建模哪个好找工作?
- idea中webapp无法添加到mian文件夹中
- Django项目报错记录1
- 【刷机】小米降级刷机 线刷 图解 MIUI降级刷机
- 用qt做网易云音乐--01标题栏实现
- VeryCD挥别影视做游戏 月入亿元转型成功
- fiddler抓包过程以及fiddler抓包手机添加代理后连不上网解决办法