求条!
查看原帖
求条!
808773
forever516楼主2024/10/14 16:40
#include<bits/stdc++.h>
#define ll long long 
using namespace std;
const int N=10,M=1e6;
ll c,t,v[N],m[N],l[10];
char a[M];
void init(){
	l[0]=0;
	for(int i=1;i<=10;i++)l[i]=pow(10,i-1);
}
int main(){
	init();
	cin>>c>>t;
	while(t--){
		cin>>a;
		ll ans=0,f[N],n=strlen(a);
		for(int i=1;i<=9;i++)cin>>v[i];
		for(int i=1;i<=n;i++){
			m[i]=a[i-1]-'0';
			ans+=v[m[i]];
		}
		for(int i=0;i<7;i++)f[i]=ans;
		for(int i=n;i>0;i--)
			for(int j=min((ll)6,n-i+1);j<n;j++)f[j]=min(f[j],f[j-1]+m[i]*l[j]-v[m[i]]);
		for(int i=1;i<7;i++)ans=min(ans,f[i]);
		cout<<ans<<'\n';
	}
	
	return 0;
} 

不知道为什么,样例一的第一问就错了?

2024/10/14 16:40
加载中...