NC14599 子序列(组合数学、思维)
题目描述:
给定一个小写字符串T
求一共有多少长度为m的小写字符串 S 满足,T是S的一个子序列(不需要连续)
输入描述:
第一行一个字符串T
第二行一个正整数m
输入:
a 2
输出:
51
备注:
思路:
(图比较丑,不理解的地方可以留言hhhh)
T: 原串 S: 构造串
1.枚举原串 T 结尾的位置:
![](/assets/blank.gif)
2.举例:
3.枚举i的位置:
4.做题思路
1.从结尾开始枚举 T 结束字符的位置最多有 m - n + 1;
2.当前位置为 T 串结尾字符,并且为了避免重复,在当前位置的前面可以随意填写的位置,不能填 和T结尾字符一样的字符,故每个位置有25个字符可以选
3.在当前T结尾位置的后面i - 1个位置,可以随意填写字符,每个位置有26中填写方法;
4.题目变为:从前m - i个位置当中选n - 1个位置,乘上前 m - i - (n - 1)个能选25个字符的,乘上i - 1个能选26个字符的;组合数
//注释是做题时候思路(可以不看),建议看上面的图:
//1.从结尾开始枚举 T 结束字符的位置最多有 m - n + 1;
//2.当前位置为 T 串结尾字符,并且为了避免重复,在当前位置的前面可以随意填写的位置,不能填 和T结尾字符一样的字符,故每个位置有25个字符可以选
//3.在当前T结尾位置的后面i - 1个位置,可以随意填写字符,每个位置有26中填写方法;
//4.题目变为:从前m - i个位置当中选n - 1个位置,乘上前 m - i - (n - 1)个能选25个字符的,乘上i - 1个能选26个字符的;组合数#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e5 + 10, mod = 1e9 + 7;
int fac[N], infac[N];
//快速幂
int qmi(int a, int b)
{int res = 1;while(b){if(b & 1)res = res * a % mod;a = a * a % mod;b >>= 1;}return res;
}
//逆元、阶乘初始化
void init()
{fac[0] = fac[1] = 1;for(int i = 1; i <= N; i++){fac[i] = i * fac[i - 1] % mod;infac[i] = qmi(fac[i], mod - 2);}
}//组合数
int C(int n, int m)
{return (fac[n] % mod) * (qmi(fac[m] * fac[n - m] % mod, mod - 2)) % mod;
}void solve()
{init();string str;int n, m;cin >> str >> m;n = str.size();int ans = 0;//方案数累加for(int i = 1 ; i <= m - n + 1; i++){ans += C(m - i, n - 1) * qmi(25, m - i - n + 1) % mod * qmi(26, i - 1) % mod;ans %= mod;}cout << ans << endl;
}signed main()
{ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);int T = 1;
// cin >> T;while(T --)solve();return 0;
}
(他不让我发,咩办法,加点字数)
/*求一共有多少长度为m的小写字符串 S 满足,T是S的一个子序列(不需要连续)*/
/*求一共有多少长度为m的小写字符串 S 满足,T是S的一个子序列(不需要连续)*/
/*求一共有多少长度为m的小写字符串 S 满足,T是S的一个子序列(不需要连续)*/
/*求一共有多少长度为m的小写字符串 S 满足,T是S的一个子序列(不需要连续)*/
/*求一共有多少长度为m的小写字符串 S 满足,T是S的一个子序列(不需要连续)*/
/*求一共有多少长度为m的小写字符串 S 满足,T是S的一个子序列(不需要连续)*/
/*求一共有多少长度为m的小写字符串 S 满足,T是S的一个子序列(不需要连续)*/
/*求一共有多少长度为m的小写字符串 S 满足,T是S的一个子序列(不需要连续)*/
NC14599 子序列(组合数学、思维)相关推荐
- CodeForces - 1284C New Year and Permutation(组合数学+思维)
题目链接:点击查看 题目大意:首先定义名词"排列"的意思是,一段数列中的数字升序排序后可以组成连续的一段数列,换句话说,满足一段区间内的最大值-最小值=r-l则称这个区间的数列为& ...
- ARC 128D - Neq Neq(dp+组合数学+思维)
链接 题意: 给出你一个长度为n的序列,你可以对其操作使得这个序列发生变化,问一共有多少种? 对于连续的i-1,i,i+1,这三个数如果满足 ai−1!=aia_{i-1}!=a_{i}ai−1!= ...
- CodeForces - 894B Ralph And His Magic Field(组合数学+思维)
题目链接:点击查看 题目大意:给出一个 n * m 的棋盘,需要在棋盘内填充数字,使得每一行.每一列的乘积都等于 k,问有多少种方案 题目分析:因为 k 只可能是 1 或 -1,所以在棋盘内填充的数字 ...
- CodeForces - 1366E Two Arrays(组合数学+思维)
题目链接:点击查看 题目大意:给出一个长度为 n 的序列 a ,再给出一个长度为 m 的序列 b ,题目保证序列 b 是严格递增的,我们需要将 a 分割成恰好 m 段,使得每一段的最小值恰好等于 b[ ...
- Permutation Partitions CodeForces - 1326C(组合数学+思维)
You are given a permutation p1,p2,-,pn of integers from 1 to n and an integer k, such that 1≤k≤n. A ...
- 【Codeforces 869 C The Intriguing Obsession】 组合数学 思维
C. The Intriguing Obsession time limit per test1 second memory limit per test256 megabytes inputstan ...
- 2022年5月8号补题
title: 5月8号补题 date: 2022-05-08 10:37:59 author: "胡耀文" categories: "算法" tags: &qu ...
- Acwing第 33 场周赛【完结】
目录 4206. 判断数字[水题] 4207. 最长合法括号子序列[思维] 4208. 电话号码[模拟] 4206. 判断数字[水题] #include<bits/stdc++.h> us ...
- Educational Codeforces Round 111 (Rated for Div. 2)
Educational Codeforces Round 111 (Rated for Div. 2) 题号 题目 知识点 A Find The Array B Maximum Cost Deleti ...
最新文章
- python测试rabbitmq的消息收发
- VMware vSphere简介
- 新JSON绑定库JSON-B发布公开预览版
- Matlab学习笔记:画图多重设置
- SharePoint2013开发环境搭建(完整版:图文并茂)
- jsoup 获取html中body内容_jsoup实现java抓取网页内容
- mysql unix formtime_linux下find命令-atime,-ctime,-mtime真正含义
- 13.函数式编程:匿名函数、高阶函数、装饰器
- 海南计算机考研和培训哪个比较好,海南考研集训营前十排名
- 计算机网络概念,组成,功能和分类
- ZABBIX 3.2.7 (源码包)安装部署
- 算法 排序 python 实现--堆排序
- CAN:CANape使用Function处理数据
- word自带公式编辑_怎么在Word上编辑数学公式?教你一招
- 键盘调节台式计算机声音,台式电脑如何用键盘控制声音开关
- 爬虫--破解验证码的几种方式
- 学校计算机机房解说词,学校会议室解说词.doc
- 使用 zk-SNARK 的可编程零知识证明:第 1 部分
- 【算法随记五】使用FFT变换自动去除图像中严重的网纹。
- 微信小程序开发教程:wxml
热门文章
- [转] error: cannot run test program while cross compiling
- FindBugs-IDEA插件找到代码中潜在的问题
- CS231n系列课程Lecture4:Backpropagation and Neural Networks(part 1)
- 蓝星代shua网源码 附带商品详细视频教程
- Kaldi学习笔记:01(kaldi/egs/sitw/v1)run.sh解析
- 人脸识别是如何实现的
- 三国演义讲述了60个道理,太精辟了!
- 在Excel中如何生成相关性的图
- matlab实现2dpsk调制与解调,(完整版)2DPSK调制与解调matlab
- 【友盟+】携手天猫,大数据破解手机存量增长难题