wannafly 5-子序列
来源:互联网 发布:rar mac 破解版 编辑:程序博客网 时间:2024/06/05 10:06
题目链接
这道题就是组合数学
按照高中数学的排列组合原理
先选最后一个字符的位置,其前面的每个空位有25种选法,后面的有26种选法
比如 a_b_c_ 有 25*25*26种选法
那么,暴力出最后一个字母的所有可能位置,然后计算有多少种情况,然后计算每种情况的种数
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N=1e5+88;const long long mod=1e9+7;long long fac[N];long long quick(long long n,long long k)//求n的k次方{ long long ans=1; while(k) { if(k&1) ans=(ans*n)%mod,k|=1; k>>=1; n=(n*n)%mod; } return ans;}long long C(long long n,long long m)//求排列组合{ return fac[n]*quick(fac[m],mod-2)%mod*quick(fac[n-m],mod-2)%mod;}char str[N];int main(){ fac[0]=1; long long n,ans=0; scanf("%s",str); scanf("%lld",&n); for(long long i=1; i<=n; ++i) fac[i]=i*fac[i-1]%mod; //求i的阶乘 long long m=strlen(str); for(long long i=m; i<=n; ++i) { ans=(ans+C(i-1,m-1)*quick(25,i-m)%mod*quick(26,n-i)%mod)%mod; } printf("%lld\n",ans);}
阅读全文
0 0
- wannafly 5-子序列
- Wannafly挑战赛5 子序列
- Wannafly挑战赛5 D.子序列 组合数学
- Wannafly 挑战赛5
- Wannafly模拟赛5 ASplit
- Wannafly模拟赛5 DAria
- Wannafly挑战赛5 B-购物
- 5、最长公共子序列
- 子序列
- 子序列
- 子序列。
- 子序列
- 子序列
- 子序列
- 子序列
- Wannafly模拟赛5 待更新 题解
- Wannafly模拟赛5 A split 二分
- Wannafly模拟赛5 A Split
- [PowerShell入门]提供程序和驱动器
- SpringMVC和Spring是什么关系?
- Glide(一)生命周期绑定
- 编程之美--笔记--数字之魅--求二进制数中1的个数
- 利用重定向标准输入输出,从键盘输入并写入新建的文件中
- wannafly 5-子序列
- 062day(分治思想在归并排序上的应用)
- 前端使用JSONP与服务器交互的过程
- Akka(41): Http:DBTable-rows streaming
- git 清除本地以及保存的用户名 密码
- 数据结构复习整理——栈的基本操作
- java多线程Executor
- 对表中的字段设置了默认值,新增记录后却发现该字段为null
- css空心三角的三种实现方式