[CSP-S模拟测试]:小W的魔术(数学 or 找规律)

题目传送门(内部题130)


输入格式

  第一行一个整数$n$,表示字符串的长度。
  第二行一个只包含小写字母的字符串$s$。


输出格式

  一行一个整数表示答案对$998244353$取模后的结果。


样例

样例输入:

2
a

样例输出:

625


数据范围与提示

  对于$20\%$的测试数据,$n\leqslant 4$。
  对于$40\%$的测试数据,$n\leqslant 100$。
  对于$60\%$的测试数据,$n\leqslant 10,000,000$。
  对于另外$20\%$的测试数据,保证$s$只由$a$组成。
  对于$100\%$的测试数据,$2\leqslant n\leqslant 10,1\leqslant |s|\leqslant 1,000,000$。
  对于$100\%$的测试数据,$|s|\leqslant n$。


题解

他们跟我说,打表找了个规律……

反正我是没有找出来。

其实答案就是:

$$26^n-26^{(n-s)}-s\times 25\times 26^{(n-s-1)}$$

时间复杂度:$\Theta(\log n)$。

期望得分:$100$分。

实际得分:$100$分。


代码时刻

#include<bits/stdc++.h>
using namespace std;
const int mod=998244353;
long long n,s;
char ch[1000001];
long long ans;
long long qpow(long long x,long long y)
{
	if(y<0)return 0;
	long long res=1;
	while(y)
	{
		if(y&1)res=res*x%mod;
		x=x*x%mod;
		y>>=1;
	}
	return res;
}
int main()
{
	scanf("%lld%s",&n,ch+1);
	s=strlen(ch+1);
	ans=((qpow(26,n)-qpow(26,n-s)+mod)%mod-s*25%mod*qpow(26,n-s-1)%mod+mod)%mod;
	printf("%lld",ans);
	return 0;
}


rp++

原文地址:https://www.cnblogs.com/wzc521/p/11821970.html

时间: 2024-08-28 20:29:48

[CSP-S模拟测试]:小W的魔术(数学 or 找规律)的相关文章

[CSP-S模拟测试]:小盆友的游戏(数学 or 找规律)

题目传送门(内部题110) 输入格式 第一行一个整数$N$,表示小盆友的个数. 第二行$N$个整数$A_i$,如果$A_i=-1$表示$i$目前是自由身,否则$i$是$A_i$的跟班. 输出格式 一个整数$X$,表示在模$10^9+7$的情况下,期望总猜拳次数. 样例 样例输入1: 2-1 -1 样例输出1: 1 样例输入2: 3-1 -1 -1 样例输出2: 3 样例输入3: 4-1 -1 -1 -1 样例输出3: 7 样例输入4: 5-1 -1 -1 -1 -1 样例输出4: 15 样例输入

[CSP-S模拟测试]:小P的单调数列(树状数组+DP)

题目描述 小$P$最近喜欢上了单调数列,他觉得单调的数列具有非常多优美的性质.经过小$P$复杂的数学推导,他计算出了一个单调增数列的艺术价值等于该数列中所有书的总和.并且以这个为基础,小$P$还可以求出任意一个数列的艺术价值,它等于将这个数列顺次划分若干个极长单调区间(相邻两个单调区间的单调性必须不相同)后,每个单调区间中元素总和的平均值.比如对于数列$3\ 7\ 9\ 2\ 4\ 5$,它将被划分为$[3\ 7\ 9]\ [2]\ [4\ 5]$,其艺术价值为$\frac{19+2+9}{3}

[CSP-S模拟测试]:小L的数(数位DP+模拟)

题目传送门(内部题132) 输入格式 第一行一个整数$t$. 接下来$t$行每行一个整数$n$. 输出格式 $t$行,每行一个整数表示答案. 样例 样例输入: 418182312326910521093203 样例输出: 1233 数据范围与提示 对于前$5\%$的测试数据,满足答案小于等于$1$. 对于前$20\%$的测试数据,满足答案小于等于$2$. 对于前$40\%$的测试数据,满足$n\leqslant 300,000$. 对于前$60\%$的测试数据,满足答案小于等于$3$,$n\le

[CSP-S模拟测试]:小P的生成树(数学+Kruskal)

题目描述 小$P$是个勤于思考的好孩子,自从学习了最大生成树后,他就一直在想:能否将边权范围从实数推广到复数呢?可是马上小$P$就发现了问题,复数之间的大小关系并没有定义.于是对于任意两个复数$z_1,z_2$,小$P$定义$z_1<z_2$当且仅当$|z_1|<|z_2|$. 现在,给出一张$n$个点$m$条边的简单无向带权图,小$P$想问你,如果按照他对复数大小的定义,这个图的最大生成树是什么? 输入格式 输入的第一行为两个正整数$n$和$m$,分别表示这个无向图的点数和边数. 接下来$m

[CSP-S模拟测试]:小Y的图(最小生成树+LCA)

题目传送门(内部题131) 输入格式 第一行三个整数$n$.$m$和$Q$. 接下来$m$行每行三个整数$x$.$y$.$z$($1\leqslant x,y\leqslant n,1\leqslant z\leqslant 1,000,000$),表示有一条连接$x$和$y$长度为$z$的边. 接下来$Q$行每行两个整数$x$.$y$($x\neq y$),表示一组询问. 输出格式 $Q$行每行一个整数,表示一组询问的答案. 样例 样例输入: 5 5 41 2 31 3 23 2 11 4 5

[CSP-S模拟测试]:Seat(概率DP+数学)

题目描述 有$n+2$个座位等距地排成一排,从左到右编号为$0$至$n+1$.最开始时$0$号以及$n+1$号座位上已经坐了一个小$G$,接下来会有$n$个小$G$依次找一个空座位坐下.由于小$G$们坐得太近就容易互相搏弈,每个小$G$会找一个当前离最近的小$G$距离最远的座位坐下.如果有多个备选的座位,这个小$G$会等概率选择其中一个.给出$n$,求第$i$个坐下的小$G$坐在$j$号座位的概率,对$P$取模.具体来说,如果答案化为最简分数可以表示为$\frac{a}{b}$,你需要输出$a\

[CSP-S模拟测试]:简单的玄学(数学)

题目描述 有$m$个在$[0,2^n)$内均匀随机取值的整型变量,球至少有两个变量取值相同的概率.为了避免精度误差,假设你的答案可以表示成$\frac{a}{b}$的形式,(其中$(a,b)=1$),你需要输出$a$和$b$对${10}^6+3$取模后的值. 输入格式 第一行两个正整数$n,m$. 输出格式 一行两个整数,它们的含义如题所述. 样例 样例输入1: 3 2 样例输出1: 1 8 样例输入2: 1 3 样例输出2: 1 1 样例输入3: 4 3 样例输出3: 23 128 数据范围与

[CSP-S模拟测试]:工业题/a(数学)

题目传送门(内部题39) 输入格式 第一行:四个正整数$n$.$m$.$a$.$b$.第二行:$n$个正整数,第$i$个表示$f(i,0)$.第三行:$m$个正整数,第$i$个表示$f(0,i)$. 输出格式 第一行:一个整数,代表$f(n,m)\mod 998244353$. 样例 样例输入: 4 4 3 2 1 3 5 7 2 4 6 8 样例输出: 50807 数据范围与提示 $20\%$的数据:$n,m\leqslant 10,a,b\leqslant 3,f(i,0),f(0,i)\l

[CSP-S模拟测试]:排列组合(数学 or 找规律)

题目描述 $T$组数据,每次给定$n$,请求出下式的值,对$10^9+7$取模: $$C_n^0\times C_n^0+C_n^1\times C_n^1+C_n^2\times C_n^2+...+C_n^n\times C_n^n$$ 输入格式 第一行一个整数$T$,表示数据组数.接下来$T$行,每一行包含一个整数$n$,含义如题所示. 输出格式 输出$T$行,每行包含一个整数,表示对$10^9+7$取模后的答案. 样例 样例输入: 212 样例输出: 26 数据范围与提示 对于$30\%