救
查看原帖
救
393811
大海中的孤帆楼主2024/3/4 09:33

输出一直是1

#include<bits/stdc++.h>
using namespace std;
int n,k;
string s;
int ans;
int a[510];
void check()
{
	int zk=0,ch=0;
	for(int i=0;i<n;++i)
	{
		if(s[i]=='(')
		{
			zk++;
			ch=0;
		}
		else if(s[i]==')')
		{
			if(!zk)
			{
				return;
			}
			zk--;
			ch=0;
		}
		else if(s[i]=='*')
		{
			ch++;
			if(ch>k)
			{
				return;
			}
		}
	}
	if(s[n-1]!=')')
	{
		return;
	}
	ans++;
	return;
}
void dg(int x)
{
	if(x==n)
	{
		check();
		return;
	}
	if(s[x]=='?')
	{
		s[x]='(';
		dg(x+1);
		s[x]=')';
		dg(x+1);
		s[x]='*';
		dg(x+1);
		return;
	}
	dg(x+1);
	return;
}
int main()
{
	cin>>n>>k;
	cin>>s;
	dg(0);
	cout<<ans;
	return 0;
}
2024/3/4 09:33
加载中...