zoukankan      html  css  js  c++  java
  • 【Codeforces Round #107 (Div. 2)】Quantity of Strings

    Quantity of Strings
    题意:长度为N的字符串,M种不同的字符串,任意长度为K的字符串都是回文串。
    题解:分类讨论
    当K > N时 K 随机组合,结果就是MK
    当K = N时分奇偶性进行判断,结果就是M(K+1)/2
    当K < N时

    1. 奇数时可以abababab,共有M*M种情况。
    2. 偶数时只能aaaaaaaa,只有M种情况。
      注意取模
    #include <cstdio>
    using namespace std;
    typedef long long ll;
    const ll mod = 1e9+7;
    ll pow(ll x,ll y){
        ll res=1;
        while(y){
            if(y%2)res*=x;
            x=x*x;
            res%=mod;
            x%=mod;
            y/=2;
        }
        return res%mod;
    }
    int main(){
        ll N,M,K;
        scanf("%lld%lld%lld",&N,&M,&K);
        if(K==1){
            printf("%lld
    ",pow(M,N));
            return 0;
        }
        if(K%2==0){
            if(N>K){
                printf("%lld
    ",M);
            }
            else{
                if(N==K)
                    printf("%lld
    ",pow(M,K/2));
                else
                printf("%lld
    ",pow(M,N));
            }
        }
        else{
            if(N>K){
                printf("%lld
    ",(M*M)%mod);
            }
            else{
                if(N==K){
                    printf("%lld
    ",pow(M,N/2+1));
                }
                else printf("%lld",pow(M,N));
            }
        }
        return 0;
    }
    
  • 相关阅读:
    JAVA学习25天
    Java学习第24天
    Java学习第23天
    Java学习22天
    第3周
    Java21
    day23作业
    day23
    Typecho使用技巧
    搭建Typecho博客
  • 原文地址:https://www.cnblogs.com/Vagrant-ac/p/12176640.html
Copyright © 2011-2022 走看看