【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;
}

 

posted @ 2019-08-12 15:51  #Cookies#  阅读(144)  评论(0编辑  收藏  举报