社区讨论
求助自测35,实际却0 QwQ
P9753[CSP-S 2023] 消消乐参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @locjhplk
- 此快照首次捕获于
- 2023/10/30 14:49 2 年前
- 此快照最后确认于
- 2023/10/30 17:05 2 年前
rt,代码如下:
CPP#include<bits/stdc++.h>
#define int long long
#define il inline
using namespace std;
const int N=1e4;
int n,f[N][N],ans;
char s[N];
il int read() {
int f=1,x=0;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-f;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return f*x;
}
signed main(){
// freopen("game.in","r",stdin);
// freopen("game.out","w",stdout);
n=read();
if(n<=8000) {
scanf("%s",s+1);
// memset(f,0x3f,sizeof(f));
for(int i=1;i<=n;++i) f[i][i]=0;
for(int i=1;i+1<=n;++i) {
int j=i+1;
if(s[i]==s[j]) f[i][j]=1,ans++;
}
for(int len=4;len<=n;len+=2) {
for(int i=1;i+len-1<=n;++i) {
int j=i+len-1;
if(s[i]==s[j]) {if(f[i+1][j-1]==1) {f[i][j]=1;ans++;}}
for(int k=i;k<=j;++k) {
if(f[i][k]&&f[k+1][j]) {
if(!f[i][j]) {
f[i][j]=1;
ans++;
break;
}
}
}
}
}
printf("%lld",ans);
}
else {
string s1;
cin>>s1;
puts("0");
}
// fclose(stdin);
// fclose(stdout);
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...