枫谷 2016-12-25 06:00 采纳率: 50%
浏览 929

一次性购书费用最低问题

张大牛喜欢算法,准备利用暑假好好学习,以后参加各类编程设计比赛.他计划去书店买几本经典的算法书.
但是大街上,书店里到处都是人,非常拥挤.大牛想节省购书时间,所以他计划从街头走到街尾,不返回,沿途所经过的书店里如果有他所需的书籍,他就可以考虑购买.现在大牛同学手上有份购书单,并且也有份关于步行街旁各书店出售书籍的名称及价格的详单.因为要买的书太多,为避免买漏,
他计划按照购书清单上的顺序,依次购买各本书,并且还要使总的费用最小.请问如何设计才能帮助大牛同学实现他的计划.
为方便起见,用数字来代替书的名称.关于详单上的记录,是按照各书店在步行街上的位置的先后关系依次给出各书
店所出售的书籍的名称及价格(对于每个书店仅给出一种所出售的书籍的名称及价格,可以认为该书店只有这一种书
可以出售).举个例子,下面的表一表示购书清单的内容,表二表示详单的内容 (S1表示街头处的书店,Sn表示街尾处的书店
表一购书清单
2 2 5 1
表二书店详单
书店S1 S2 S3 S4 S5 S6 S7 S8
书籍2 3 2 5 2 5 4 1
价格50 80 40 60 42 65 100 30

Input

对于每组测试数据,第一行有M和N,M(1<=M>=100)表示需要购买的书籍数量,N(1<=N>=1000000)表示详单上书店的数量,
接下来一行有M个整数,依次表示购书清单上的书籍名称,接下来有N行,每行两个整数,第i行第一个数表示书店Si所出售
书籍的名称,第二个数表示价格。当M=N时输入结束。
如果能帮完成购书计划,则输出完成购书计划最少需要的费用,若不能完成购书计划,则输出"Impossible".

Sample Input
4 8
2 2 5 1
2 50
3 80
2 40
5 60
2 42
5 65
4 100
1 30
2 3
3 2
1 200
2 300
3 100
0 0
Sample Output
177
Impossible

求思路,要把所有可能的情况都求出来再比较费用吗?

  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2016-12-31 02:43
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题