ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

2021牛客寒假算法基础集训营1 补题报告

2021-03-17 22:00:14  阅读:179  来源: 互联网

标签:include const LL us 牛客 补题 ans 集训营 dp


A-串

题目描述

长度不超过nn,且包含子序列“us”的、只由小写字母构成的字符串有多少个? 答案对 1 e 9 + 7 1e9+7 1e9+7取模。
所谓子序列,指一个字符串删除部分字符(也可以不删)得到的字符串。
例如,“unoacscc"包含子序列"us”,但"scscucu"则不包含子序列"us"

输入

一个正整数 n , ( 2 ≤ n ≤ 1 0 6 ) n,(2\le n\le10^6) n,(2≤n≤106)

输出

一个正整数,为满足条件的字符串数量对 1 0 9 + 7 10^9+7 109+7取模的值

实例

样例1输入

2

样例1输出

1

解析

定义dp[i]为长度为i且包含子序列"us"的字符串的数量。
那么对于长度i+1而言,包含子序列"us"的字符串有两类:
①前i个字符已经包含了子序列"us",后面接任意一个字符。数量为 d p [ i ] ∗ 26 dp[i]*26 dp[i]∗26。
②前i个字符包含字母u,但不包含子序列"us"。后面再接一个字符’s’即可。数量为 2 6 i − 2 5 i − d p [ i ] 26^i-25^i-dp[i] 26i−25i−dp[i]。
两者相加即为dp[i+1]

#include<set>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<vector>
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<iomanip>

using namespace std;
#define LL long long
#define uLL unsigned long long
#define endl '\n'
const LL MOD = 1e9 + 7;
const LL INF = 0x3f3f3f3f;
const int N = 1e5 + 7;
const int MAXN = 107;
const double EPS = 1e-6;
const double PI = acos(-1);
using namespace std;

LL ksm(LL a, LL b, LL p = MOD)
{
	LL ans = 1;
	while (b)
	{
		if (b & 1)
		{
			ans = ans * a % p;
		}
		b >>= 1;
		a = a * a % p;
	}
	return ans;
}
LL dp[1000007];
int main()
{
	dp[2] = 1;
	int n;
	cin >> n;
	for (int i = 3; i <= 1e6; ++i)
	{
		dp[i] = (ksm(26, i - 1) - ksm(25, i - 1) + 25 * dp[i - 1]+MOD) % MOD;
	}
	LL ans = 0;
	for (int i = 1; i <= n; ++i)
	{
		ans = (ans + dp[i]) % MOD;
	}
	cout << ans << endl;
	return 0;
}

标签:include,const,LL,us,牛客,补题,ans,集训营,dp
来源: https://blog.csdn.net/weixin_45842558/article/details/114945965

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有