本文搬运自本人初中博客园博客,若图片加载不出来,可到原文查看:https://www.cnblogs.com/zhangtingxi/p/15634024.html

题目链接

暴力是肯定可以的。所以这里讲 O(1)O(1)

首先不考虑重复,则有 (s+1)×26(|s|+1)\times 26 种可行方案。

然后重复的就是在一个字母的左右放和这个字母相同的字母,有 s|s| 种可能。

所以总共有 (s+1)×26s(|s|+1)\times 26-|s| 种可能。

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Problem: CF554A Kyoya and Photobooks
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/CF554A
// Memory Limit: 250 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)

#include<bits/stdc++.h>
using namespace std;
//#define int long long
inline int read(){int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;
ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<1)+
(x<<3)+(ch^48);ch=getchar();}return x*f;}
//#define mo
//#define M
//#define M
int n, m, i, j, k;
char s[22];

signed main()
{
// freopen("tiaoshi.in","r",stdin);
// freopen("tiaoshi.out","w",stdout);
scanf("%s", s+1); n=strlen(s+1);
printf("%d", (n+1)*26-n);
return 0;
}