蓝桥杯 子串分值 递推
思路: 本题有点难想,采用贡献和的思想。首先需要定义一个last数组,用于记录当前遍历的字母s[i]上一次出现在字符串s中的位置。接着遍历数组,计算每一个字母的贡献值。
参考代码:
#include
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
int main()
{
ios::sync_with_stdio(false);
string s;
cin >> s;
ll tmp[26], last[100005]; //last数组记录该字母上次出现的位置
fill(tmp, tmp+26, -1);
int len = s.size();
for(int i = 0; i < len; i++)
{
last[i] = tmp[s[i]-'a'];
tmp
蓝桥杯 子串分值 递推最先出现在Python成神之路。
共有 0 条评论