QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#217662#6366. MessageliqingyangTL 1404ms176640kbC++142.5kb2023-10-17 08:28:012023-10-17 08:28:02

Judging History

你现在查看的是最新测评结果

  • [2023-10-17 08:28:02]
  • 评测
  • 测评结果:TL
  • 用时:1404ms
  • 内存:176640kb
  • [2023-10-17 08:28:01]
  • 提交

answer

#include<iostream>
#include<vector>
#include<algorithm>
#include<cstring>
using namespace std;
int Task,T,n,m,a[200010],p[26],cnt[26],Cnt[26];
char s[200010],t[200010];
vector<int> S[26];
vector<long long> A[26];
long long ans,V[26];
void dfs(int ps,int pt,long long val)
{
	if(val>=ans)
	{
		return;
	}
	if(pt>m)
	{
		ans=val;
		return;
	}
	int minn=1e9;
	for(int i=0;i<26;i++)
	{
		if(Cnt[i]&&Cnt[i]<cnt[i])
		{
			minn=min(minn,S[i][p[i]]);
		}
	}
	int c=t[pt]-'a';
	if(!(Cnt[c]++))
	{
		int P=upper_bound(S[c].begin(),S[c].end(),ps)-S[c].begin();
		for(int i=P;i+cnt[c]<=S[c].size()&&S[c][i]<minn;i++)
		{
			p[c]=i;
			dfs(S[c][p[c]++],pt+1,val-V[c]+A[c][i]+A[c].back()-A[c][i+cnt[c]]);
		}
		Cnt[c]--,p[c]=0;
		return;
	}
	if(S[c][p[c]]>minn)
	{
		Cnt[c]--;
		return;
	}
	dfs(S[c][p[c]++],pt+1,val);
	Cnt[c]--,p[c]--;
}
long long f[200010][110];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
		cin>>s+1>>t+1;
n=strlen(s+1),m=strlen(t+1);
		for(int i=1;i<=n;i++)
		{
			cin>>a[i];
		}
		memset(cnt,0,sizeof(cnt));
		for(int i=1;i<=m;i++)
		{
			cnt[t[i]-'a']++;
		}
		if(m<=100)
		{
			memset(f,0x3f,sizeof(f)),f[0][0]=0;
			for(int i=1;i<=n;i++)
			{
				memset(Cnt,0,sizeof(Cnt));
				for(int j=0;j<=m;j++)
				{
					if(j)
					{
						Cnt[t[j]-'a']++;
					}
					long long v=f[i-1][j];
					if(!Cnt[s[i]-'a']||Cnt[s[i]-'a']==cnt[s[i]-'a'])
					{
						f[i][j]=min(f[i][j],v+a[i]);
					}
					if(s[i]==t[j+1])
					{
						f[i][j+1]=min(f[i][j+1],v);
					}
				}
			}
			if(f[n][m]<1e18) cout<<f[n][m]<<endl;
			else cout<<"You better start from scratch man..."<<endl;
return 0;
		}
		for(int i=0;i<26;i++)
		{
			S[i].clear(),A[i].clear();
			A[i].push_back(0);
		}
		for(int i=1;i<=n;i++)
		{
			S[s[i]-'a'].emplace_back(i);
			A[s[i]-'a'].emplace_back(A[s[i]-'a'].back()+a[i]);
		}
		bool flag=1;
		long long sum=0;
		for(int i=0;i<26;i++)
		{
			if(cnt[i])
			{
				V[i]=1e18;
				if(S[i].size()<cnt[i])
				{
					flag=0;
					break;
				}
				for(int j=0;j+cnt[i]<=S[i].size();j++)
				{
					V[i]=min(V[i],A[i][j]+A[i].back()-A[i][j+cnt[i]]);
				}
				sum+=V[i];
			}
		}
		if(!flag)
		{
			cout<<"You better start from scratch man..."<<endl;
return 0;
		}
		ans=1e18,dfs(0,1,sum);
		for(int i=0;i<26;i++)
		{
			if(!cnt[i])
			{
				ans+=A[i].back();
			}
		}
		if(ans<1e18) cout<<ans<<endl;
	else cout<<"You better start from scratch man..."<<endl;
	return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 19ms
memory: 175476kb

input:

ababccb
abc
7 2 2 4 3 2 1

output:

7

result:

ok single line: '7'

Test #2:

score: 0
Accepted
time: 11ms
memory: 175552kb

input:

babab
baab
2 1 3 2 4

output:

You better start from scratch man...

result:

ok single line: 'You better start from scratch man...'

Test #3:

score: 0
Accepted
time: 15ms
memory: 8692kb

input:

bbaaaabbbbbabaababbaaabbbabaaaababaababaabababbbbabbbbababaabaaabbabaaaabbbabbaababababbabbbabbaababaaaaaabbabbbababbaabbbabbbabbbabaababaaaaaabaaababbbbbbaabaabaaaaaaabbbaaabaabbbababbbbbabbababaababaabbababbaababbbbbbbbbbbaabbbbbabaaabaabaaabaaaaabaaaabbbbbbbaaaabaabbbababbaaaabbabababbbabbbbabbab...

output:

You better start from scratch man...

result:

ok single line: 'You better start from scratch man...'

Test #4:

score: 0
Accepted
time: 14ms
memory: 9220kb

input:

bdabcfbdfcffebebcabbadacbbaeeaffbdedeedfabefdfdbddcecdaaddafdfbbdceccedebcecdfbcfbaafcefeecffdabfaacbeeecfeffaaafaefdcdaaeaeecfafcdadbfbccbdecacfeabdbfcacafebdcfbfbebacbffaecbfbcedccabbdecabaebbbdbcfbaeadfcadfadfaebaddbebfcbefdabdcefbbdaaaabcefedabcabcafedcfadedfdcbbccbffdcfdfcfcdfcfbbdabdbbeecafecc...

output:

You better start from scratch man...

result:

ok single line: 'You better start from scratch man...'

Test #5:

score: 0
Accepted
time: 14ms
memory: 8220kb

input:

soibsuydrizsuvymezuyrewmgwpnzxgyggpzjkdzooisgzbkfqjzkfcklluotqpwganvksoqtzixkfkrtqobdnregwgkxjwzsruvhztscxjyqlhfytomzhxiglxemdhkjnskrsqngojffogrkbygmdgzfwrlhwhhngqpjpepqgynsdybhpuaqhgjroijqofiwnxgxdmhofwsjnmwitruiesefzmabcfsyzrrruidewjowfkwwwqhztsmmtdnejlqhkmbpmknlxijnmzbtqviburbqwufipqsrqplcelovsxz...

output:

You better start from scratch man...

result:

ok single line: 'You better start from scratch man...'

Test #6:

score: 0
Accepted
time: 16ms
memory: 28060kb

input:

bbaaaabbbbbabaababbaaabbbabaaaababaababaabababbbbabbbbababaabaaabbabaaaabbbabbaababababbabbbabbaababaaaaaabbabbbababbaabbbabbbabbbabaababaaaaaabaaababbbbbbaabaabaaaaaaabbbaaabaabbbababbbbbabbababaababaabbababbaababbbbbbbbbbbaabbbbbabaaabaabaaabaaaaabaaaabbbbbbbaaaabaabbbababbaaaabbabababbbabbbbabbab...

output:

0

result:

ok single line: '0'

Test #7:

score: 0
Accepted
time: 22ms
memory: 25880kb

input:

hdhlkjabgckjkagfgkigfebfjmdabahajicgkfmblafmfgkiimkjlciiaegbkbkicgklhbhfmclghkleghmckbjliiicmmecldieghfdeghgechcjahdfebkhdigbkklcclieccijaemchbmfcggcjmgbdjhcbacleajjjledkfdjebgdmgahkjigjjighlbedbellabffeeckfbghcblmmgjijdehmcameeledejfijfmfcfkjdjklfldhmkabblcbgebhibkmihelehjccgggjhhbjehfidfmmjdgmmjbf...

output:

0

result:

ok single line: '0'

Test #8:

score: 0
Accepted
time: 23ms
memory: 27524kb

input:

soibsuydrizsuvymezuyrewmgwpnzxgyggpzjkdzooisgzbkfqjzkfcklluotqpwganvksoqtzixkfkrtqobdnregwgkxjwzsruvhztscxjyqlhfytomzhxiglxemdhkjnskrsqngojffogrkbygmdgzfwrlhwhhngqpjpepqgynsdybhpuaqhgjroijqofiwnxgxdmhofwsjnmwitruiesefzmabcfsyzrrruidewjowfkwwwqhztsmmtdnejlqhkmbpmknlxijnmzbtqviburbqwufipqsrqplcelovsxz...

output:

0

result:

ok single line: '0'

Test #9:

score: 0
Accepted
time: 8ms
memory: 176640kb

input:

aaaaaaaaaa
a
670064684 12247274 885150692 755303894 373857482 772871474 451986656 733926307 275101324 732261937

output:

4777621032

result:

ok single line: '4777621032'

Test #10:

score: 0
Accepted
time: 8ms
memory: 176556kb

input:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaa
807194254 763061330 636628022 447638039 310117480 873320507 134259988 666480259 747042520 231541618 643931761 30317274 158530414 253502390 229547045 438239031 709645547 367432988 755781758 67144518 360508870 862615691 635226301 863755466 104979114 4...

output:

5115514604

result:

ok single line: '5115514604'

Test #11:

score: 0
Accepted
time: 3ms
memory: 175476kb

input:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaa
768295104 305748099 281563038 518303412 678146171 512832379 509999474 360793781 979858190 884904151 886121576 776530718 147119220 985829130 553994391 500082956 167860347 562080893 520228135 790526162 270707017 179265550 913606870 245853815 83...

output:

21140461276

result:

ok single line: '21140461276'

Test #12:

score: 0
Accepted
time: 4ms
memory: 175540kb

input:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
684483834 637018127 270602950 736485564 883414052 758886073 266638494 906099301 851227039 479339928 603217972 474167559 537788182 324629484 719852776 8079...

output:

27302362948

result:

ok single line: '27302362948'

Test #13:

score: 0
Accepted
time: 1ms
memory: 5748kb

input:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

output:

131859070652

result:

ok single line: '131859070652'

Test #14:

score: 0
Accepted
time: 1ms
memory: 3856kb

input:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

output:

781196173176

result:

ok single line: '781196173176'

Test #15:

score: 0
Accepted
time: 4ms
memory: 6020kb

input:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

output:

4343956108320

result:

ok single line: '4343956108320'

Test #16:

score: 0
Accepted
time: 31ms
memory: 7560kb

input:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

output:

18494567762260

result:

ok single line: '18494567762260'

Test #17:

score: 0
Accepted
time: 264ms
memory: 10744kb

input:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

output:

32209183658799

result:

ok single line: '32209183658799'

Test #18:

score: 0
Accepted
time: 102ms
memory: 10656kb

input:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

output:

54681136007004

result:

ok single line: '54681136007004'

Test #19:

score: 0
Accepted
time: 1404ms
memory: 20924kb

input:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

output:

29370598770431

result:

ok single line: '29370598770431'

Test #20:

score: 0
Accepted
time: 3ms
memory: 176488kb

input:

aaaabababb
bb
476848657 19478030 860633182 479517749 926931997 990353030 811177212 276072809 44418816 639422667

output:

3786744940

result:

ok single line: '3786744940'

Test #21:

score: 0
Accepted
time: 8ms
memory: 176560kb

input:

baabbbaabbbbbbaaabbabababbbabb
aabbbbbbbbbbbb
596942736 513321407 582182914 466363879 661702687 696876564 738552457 374802663 475543850 315580035 306727219 980454952 485808481 677883937 518967937 895712736 991586358 554417767 795851770 921017576 109301858 423859119 202619045 804565823 583428190 4070...

output:

9486081373

result:

ok single line: '9486081373'

Test #22:

score: 0
Accepted
time: 4ms
memory: 176236kb

input:

bbaaaaababbaabbbabaaaaaaaaaaaaaaabaabaabbabbbbaaaa
bba
517088091 307183015 994179974 164146474 156595248 11692792 656694126 683962150 307132163 246359231 966105863 281059597 304728259 612665622 916423647 405320553 230841790 746930714 950416681 343242506 418374186 670629995 146835514 191417218 469803...

output:

21735754192

result:

ok single line: '21735754192'

Test #23:

score: 0
Accepted
time: 0ms
memory: 175556kb

input:

abbbbabbbbbaaaabaabbbaaabaababaaababaababbbaaaabbaabbbabbaabbaabbbbbabbbbaabaabaabbbaabbaaaabaaabbab
bbbbbbbbbbbbab
224008866 420036954 610760159 229448373 88014692 800505315 190642695 680916401 526205898 463834969 506379052 591268851 942360508 176667947 891525614 324651315 294533169 355712507 94407...

output:

40969461750

result:

ok single line: '40969461750'

Test #24:

score: 0
Accepted
time: 1ms
memory: 3724kb

input:

baabaaabaabbbbabaaaabaaabaabbababbaaababbbaababbbaabbbababaaababbbaabbbabaaabbbabaabbaaabaaaaabaaabaaabaaaababbbbbbbabbabaabbbabababbbbbaaaaaaabbbbbbbbaababaababbbbbbaaaaaabbabbbabbbababababaaaaabbaaababbabbbbaaabbbaabaabaabaaabaabbbaaaaaabbaaaabbbbbbaabbabaabbbabbaaabababbbabaabbbbbabbbbbbababbbaab...

output:

158990471979

result:

ok single line: '158990471979'

Test #25:

score: 0
Accepted
time: 4ms
memory: 5976kb

input:

ababaababbbbbbababbbbaaabaaabbabababbabbabbabbbbbbabbabbbabbabaabbaaabbbababaabbbbbbbbabaabbaabababababababbabaaaabaaabbabbaabbbbabbabaabaabbabbababaababaaaabbaabaaaaaabbabbbaabababbabababbaabaabbaababbbbababbbbaabbbaabbbaabbabbaaabaabaababbabbabbabaaaaababbbbbaaaaaabababbaabbbbbbaabbbaaababbbabbaaa...

output:

532301963225

result:

ok single line: '532301963225'

Test #26:

score: 0
Accepted
time: 56ms
memory: 4272kb

input:

bbabbbaababaabbbabababbbaabbbbbbbbabaaaabbabbbaababaababbbbbabbbaabaabbabababaababaaabaaabbaabbaabbbabbbbbbbaabbaaabababbabababbbabbbaaabbbbbababbbbabbbabbababbabaabbbabaabbaabbabbaaabababbbaaabaaaabababaaabbbbbabbbaaabbbababbbbbbaaaabbbababbaabaabaabbaaaaabbababbabbbaaaabaaabbaaaaabbbbbbbbaabababbb...

output:

2701255525826

result:

ok single line: '2701255525826'

Test #27:

score: 0
Accepted
time: 1389ms
memory: 6772kb

input:

abaabaababaaabaaaabaabaaabbabaaaabbbbbaabaaaaaaaaabaababbaaabbbbababbbabbaaaaabababbbbbabbabbaabbaababaabaaaaababbbbbabbabaabbaabbaaaaabaaababbabbabbabbbbbbbabaaababbbaaaaabbabaabaaaabbbbabbaababbabaaaaabaaabbbaaaaaaabbbababbbaaabbbbababbabaabbaabbaabaaabbabaabbaababbabaabbbbabababbbabbbababbbbaabba...

output:

12048672748205

result:

ok single line: '12048672748205'

Test #28:

score: -100
Time Limit Exceeded

input:

baabbababbaababaabbbaaaababbbbbbbbaaababbbbabbbabababbabaabbabaabbabaababbaabababaabbbabbabbbaaaabbbbbaabbbbbabbbaabbabaaababbabbbaaabaabbaaabbabaabbaaaaaabbbbaabbaabaaababbbbbbbabaabaaababbbbbaabbbaabaaaaaaaabbbbaabababbaabbbabbbababaaaabaaaaaababaabbaababaaaaabbaabaabaababbbbbababbbbbabbababaabbba...

output:


result: