1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 劫富济贫

劫富济贫

时间:2020-09-09 13:22:41

相关推荐

劫富济贫

/t/16618

字典树维护即可。

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define N 1000010using namespace std;char s[N];int ch[N][27],w[N],cnt=1;void addnew(int W){int n=strlen(s),now=1,x,i;for(i=0;i<n;i++){x=s[i]-96;if(!ch[now][x]){cnt++;w[cnt]=-1;ch[now][x]=cnt;}now=ch[now][x];}w[now]=W;}int find(){int n=strlen(s),now=1,x,i;for(i=0;i<n;i++){x=s[i]-96;now=ch[now][x];}return w[now];}int main(){int n,m;scanf("%d",&n);int i,j,x,y;w[0]=-1;for(i=1;i<=n;i++){scanf("%s%d",s,&x);addnew(x);}scanf("%d",&m);while(m--){scanf("%d",&x);long long ans=0;bool cant=false;while(x--){scanf("%s",s);y=find();if(y==-1) cant=true;else ans+=y;}if(cant) puts("-1");else printf("%lld\n",ans);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。