zoukankan      html  css  js  c++  java
  • Nowcoder9981A.串(排列组合)

    链接:https://ac.nowcoder.com/acm/contest/9981/A
    来源:牛客网

    长度不超过nnn,且包含子序列“us”的、只由小写字母构成的字符串有多少个? 答案对109+710^9+7109+7取模。
    所谓子序列,指一个字符串删除部分字符(也可以不删)得到的字符串。
    例如,"unoacscc"包含子序列"us",但"scscucu"则不包含子序列"us"
     
    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1e6+100;
    const int mod=1e9+7;
    int n;
    //一个长度为n的字符串
    //包含一个us即可
    //在已经有一个u的情况下,后面要有s
    //枚举u的位置
    //保证前面不包含u
    //pow(25,i-1)*(pow(26,n-i)-pow(25,n-i))
    long long c26[maxn];
    long long c25[maxn];
    long long f26[maxn];
    long long f25[maxn];
    int main () {
        scanf("%d",&n);
        long long ans=0;
        f26[0]=f25[0]=1;
        for (int i=1;i<=n;i++) {
            f26[i]=f26[i-1]*26;
            f26[i]%=mod;
            f25[i]=f25[i-1]*25;
            f25[i]%=mod;
            c26[i]=c26[i-1]+f26[i];
            c25[i]=c25[i-1]+f25[i];
            c26[i]%=mod;
            c25[i]%=mod;
        }
        for (int i=1;i<=n;i++) {
            ans+=f25[i-1]*(c26[n-i]-c25[n-i]+mod)%mod;
            ans%=mod;
        }
        printf("%lld
    ",ans);
    } 
  • 相关阅读:
    Count on a tree
    图论1 1009
    DP2 1008
    DP1 1008
    NOIP 模拟 1006
    2019 CSP-S 初赛退役记
    9.13——TEST NOIP模拟测试
    [洛谷P2387][NOI2014]魔法森林
    [洛谷P2596][ZJOI2006]书架
    [BZOJ4241]历史研究
  • 原文地址:https://www.cnblogs.com/zhanglichen/p/14359194.html
Copyright © 2011-2022 走看看