社区讨论
25pts求举反例
P9753[CSP-S 2023] 消消乐参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @m2h00gxs
- 此快照首次捕获于
- 2024/10/20 10:58 去年
- 此快照最后确认于
- 2024/10/20 10:58 去年
对了前五个,数据量一大就过不了
CPP#include <iostream>
#include <string>
#include <cstring>
using namespace std;
string s;
int dp[2000010];
int to[2000010];
int main()
{
int n,ans = 0;
cin>>n;
cin>>s;
s=' '+s;
memset(to,-1,sizeof(to));
for(int i=1;i<=n;i++)
{
if(s[i]==s[i-1]) to[i]=i-2;
else
if(to[i-1]!=-1 && s[i]==s[to[i-1]]) to[i]=to[i-1]-1;
}
for(int i=1;i<=n;i++)
{
if(to[i]!=-1) dp[i]=dp[to[i]]+1;
ans += dp[i];
}
cout << ans;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...