【8.12测试】辉夜的见面礼
辉夜的见面礼
【题目背景】
可爱的辉夜看着你认真地学了一堆算法,不希望你一题也不会做。她通过收买出题人,将一道水题放到前面,并且将 noip 模拟赛 改成了 GDSOI 模拟赛。
【问题描述】
辉夜是个有钱的女孩子,她第一天给出题人 x 円,第二天给出题人 2x+3 円 此后每一天,用于收买出题人的钱都是上一天的 两倍多 3 円。
她想知道自己第 n 天花了多少钱。对 998244353 取模。
【输入格式】
一行 2 个整数 x,n 。
【输出格式】
一个整数。
【样例输入】
21 3
【样例输出】
93
【数据范围】
对于 60% 的数据,n<=1000000。
对于 100% 的数据 2 ≤n<998244353,x<998244353 。
题解:这……easy送分题%%%,加个快速幂即可。
#include<iostream> #include<algorithm> #include<queue> #include<cmath> #include<cstring> #include<cstdlib> #include<cstdio> using namespace std; typedef long long ll; const int mod=998244353; ll ksm(ll a,ll b){ if(b==0) return 1; ll tmp; tmp=ksm(a,b/2); tmp=(tmp*tmp)%mod; if(b%2==1) tmp=tmp*a%mod; return tmp; } ll x,n,p; int main(){ freopen("gift.in","r",stdin); freopen("gift.out","w",stdout); scanf("%lld %lld",&x,&n); p=ksm(2,n-1); cout<<(p*((x+3)%mod)-3)%mod<<endl; return 0; }