社区讨论

80分,求条,很急!!!

P14075[GESP202509 六级] 划分字符串参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mmh3bo1r
此快照首次捕获于
2026/03/08 09:45
前天
此快照最后确认于
2026/03/08 14:56
前天
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
struct WAT
{
	long long q,w;
};
bool as[26];
int main()
{
	long long n;
	string s;
	cin >> n >> s;
	vector<WAT> a(n+1);
	for(int i=1;i<=n;i++)
	{
		cin >> a[i].q;
		a[i].w=i;
		if(i!=1&&a[i].q<a[i-1].q*(i/a[i-1].w))
		{
			a[i].q=a[i-1].q;
			a[i].w=a[i-1].w;
		}
	}
	s=s+s[s.size()-1];
	long long ans=0;
	string sa="";
	for(int i=0;i<s.size();i++)
	{
		if(!as[int(s[i]-'a')])
		{
			sa=sa+s[i];
			as[int(s[i]-'a')]=true;
		}
		else
		{
			memset(as,false,sizeof(as));
			long long qw=sa.size();
			while(qw>0)
			{
				ans=ans+a[qw].q*(qw/a[qw].w);
				qw=qw%a[qw].w;
			}
			sa=s[i];
		}
	}
	cout << ans;
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...