luogu#P11188. 「KDOI-10」商店砍价

「KDOI-10」商店砍价

题目背景

English Statement. You must submit your code at the Chinese version of the statement.

您可以点击 这里 下载本场比赛的选手文件。

You can click here to download all tasks and examples of the contest.

密码 / Password:rAnHoUyaSuoBaoMimaNijuEdefAngsHa2)2$1)0(2@0!

本场比赛所有题目从标准输入读入数据,输出到标准输出。

题目描述

有一个正整数 nn,保证其只由数字 191\sim 9 构成。

你可以做任意多次如下操作:

  • 选择 nn 的一个数位 xx,花费 vxv_x 的代价删除它,注意,此时 nn 的数位个数会减少 11nn 的值也会发生相应的变化;
  • 或者,花费 nn 的代价把剩余的所有数位删除。

求把整个数删除的最小代价。

输入格式

从标准输入读入数据。

本题有多组测试数据。

输入的第一行包含一个正整数 cc,表示测试点编号。c=0c=0 表示该测试点为样例。

第二行包含一个正整数 tt,表示测试数据组数。

对于每组测试数据:

  • 第一行一个正整数 nn,表示这个数的初始值。
  • 第二行九个正整数 v1,v2,,v9v_1,v_2,\dots,v_9,表示删除每个数位的代价。

输出格式

输出到标准输出。

对于每组测试数据:

  • 输出一行一个正整数,表示最小代价。
0
3
123
10 10 10 10 10 10 10 10 10 
1121
2 1 2 2 2 2 2 2 2
987654321
1 2 3 4 5 6 7 8 9

21
6
45

提示

【样例 1 解释】

对于第一组测试数据,最优操作方案如下:

  • 删除数位 22,代价为 1010,此时 nn 变为 1313
  • 删除数位 33,代价为 1010,此时 nn 变为 11
  • 删除 nn 的剩余所有数位,代价为 11

总代价为 10+10+1=2110+10+1=21,可以证明,这是代价的最小值。

对于第二组测试数据,一种最优操作方案如下:

  • 删除第一个数位 11,代价为 22,此时 nn 变为 121121
  • 删除最后一个数位 11,代价为 22,此时 nn 变为 1212
  • 删除数位 22,代价为 11,此时 nn 变为 11
  • 删除 nn 的剩余所有数位,代价为 11

总代价为 2+2+1+1=62+2+1+1=6

【样例 2】

见选手目录下的 bargain/bargain2.inbargain/bargain2.ans

这个样例满足测试点 363\sim 6 的约束条件。

【样例 3】

见选手目录下的 bargain/bargain3.inbargain/bargain3.ans

这个样例满足测试点 1111 的约束条件。

【样例 4】

见选手目录下的 bargain/bargain4.inbargain/bargain4.ans

这个样例满足测试点 17,1817,18 的约束条件。

【样例 5】

见选手目录下的 bargain/bargain5.inbargain/bargain5.ans

这个样例满足测试点 232523\sim 25 的约束条件。


【数据范围】

对于全部的测试数据,保证:

  • 1t101\le t\le 10
  • 1n<101051\le n< 10^{10^5}
  • 对于任意 1i91\le i\le 91vi1051\le v_i\le 10^5
  • nn 由数字 191\sim 9 构成。
测试点 n<n< viv_i\le 特殊性质
11 100100 10510^5
22 10310^3
363\sim 6 101810^{18}
797\sim 9 104010^{40}
1010 1010510^{10^5} nn 由至多一种数字构成
1111 nn 由至多两种数字构成
12,1312,13 nn 由至多三种数字构成
141614\sim 16 1010310^{10^3} v1=v2=v3==v9v_1=v_2=v_3=\dots =v_9
17,1817,18 1010510^{10^5}
19,2019,20 1010010^{100} 100100
21,2221,22 1010310^{10^3} 10310^3
232523\sim 25 1010510^{10^5} 10510^5