zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 52E(构造,快速幂)

    #include <bits/stdc++.h>
    using namespace std;
    const int mod=998244353;
    long long b[200007];
    long long ksm(long long x,long long y){//快速幂
        long long ans=1;
        while(x){
            if(x&1)
                ans=ans*y%mod;
            y=y*y%mod;
            x>>=1;
        }
        return ans;
    }
    int main(){
        long long n,m,a;
        scanf("%lld%lld%lld",&n,&m,&a);
        long long ans=1;
        for(int i=1;i<=m;i++){
            scanf("%lld",&b[i]);
            long long c=ksm(b[i]-b[i-1],a);//多出来的部分进行排列组合
            ans=c*(c+1)/2%mod*ans%mod;//左右各多余部分的a次方,即x^2a,减去左右倒置后相同,即与一边的组合情况数量相等,即x^a,除以二得到交换后相同的数量再加上之前被减去的左右镜像的x^a种得到答案
        }
        ans=ans*ksm(n-2*b[m],a)%mod;//快速幂乘上还未组合过的
        printf("%lld ",ans);
        return 0;
    }

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    操作系统、存储介质以及电信行业单位换算差异
    Luogu P1659 [国家集训队]拉拉队排练
    AC自动机
    KMP
    Luogu P1470 最长前缀 Longest Prefix
    Luogu P2292 [HNOI2004]L语言
    Manacher算法
    字典(Trie)树
    逆序对
    vs
  • 原文地址:https://www.cnblogs.com/ldudxy/p/9825222.html
Copyright © 2011-2022 走看看