本地可运行但提交报错且一读字符串就写0求大佬
查看原帖
本地可运行但提交报错且一读字符串就写0求大佬
513322
john澍楼主2024/10/15 21:51

//注释掉的cout是调试时用的

#include <bits/stdc++.h>
using namespace std;
const int N=2e6;
int f[N+5][N+5]={0};//记忆化搜索
long long sum=0;
string s;

bool check(int x,int y)
{
//	for(int i=x;i<=y;i++)
//	{
//		cout<<s[i];
//	}
//	cout<<endl;
	if(f[x][y]==1)//记忆化搜索
	{
		return true;
	}
	if(f[x][y]==2)
	{
		return false;
	}
	if(y-x==1&&s[x]==s[y])
	{
		f[x][y]=1;
		return true;
	}
	if(x<y&&check(x+1,y-1)==true&&s[x]==s[y])
	{
		f[x][y]=1;
		return true;
	}
	f[x][y]=2;
	return false;
}

int main()
{
	int n;
	scanf("%d",&n);
	cin>>s;
//	cout<<s<<endl;
	for(int i=0;i<n;i++)
	{
//		cout<<"i"<<i<<endl;
		for(int j=i+1;j<n;j++)
		{
//			cout<<"j"<<j<<endl;
			if((j-i)%2==0)
			{
//				cout<<"continue"<<endl;
				continue;
			}
			else
			{
				cout<<"check"<<endl;
				if(check(i,j)==true)
				{
					sum++;
				}
			}
		}
	}
	printf("%lld",sum);
	return 0;
}
2024/10/15 21:51
加载中...