社区讨论
悬三关,求一解
P11188「KDOI-10」商店砍价参与者 4已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @m2it4n81
- 此快照首次捕获于
- 2024/10/21 17:21 去年
- 此快照最后确认于
- 2025/11/04 16:37 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int c;
int t,v[11];
char n[100005];
int sum(int q,int p){
int f=0;
for(int i=q;i<=p;i++){
f=f*10+(n[i]-'0');
}
for(int i=0;i<p;i++){
f+=v[n[i]-'0'];
}
for(int i=q+1;i<strlen(n);i++){
f+=v[n[i]-'0'];
}
return f;
}
int ans=INT_MAX;
int main(){
cin>>c>>t;
while(t>0){
t--;
cin>>n;
int maxn=INT_MIN;
for(int i=1;i<=9;i++){
cin>>v[i];
maxn=max(maxn,v[i]);
}
int fu=0;
while(maxn>0){
maxn/=10;
fu++;
}
// if(maxn>0){
// fu++;
// }
int p=0,q=0;
for(int i=0;i<strlen(n);i++){
for(int j=i;j<=i+fu;j++){
// if(j-i==fu&&n[i]-'0'<=maxn){
ans=min(ans,sum(i,j));
// }
}
}
cout<<ans<<endl;
}
return 0;
}
回复
共 6 条回复,欢迎继续交流。
正在加载回复...