AlgoMooc
← 返回题库

P3162. 静态代码扫描服务

中等通过率 60% · 提交 409 · 通过 245
贪心模拟哈希表数学

小慕正在开发一个代码质量检测工具,该工具通过静态扫描来快速识别源代码中的缺陷。扫描结果以报告形式输出。扫描过程中涉及以下规则: 1. 扫描一个文件的成本与文件大小有关:若文件大小为 N,则。 2. 扫描报告的缓存成本与文件大小无关:每缓存一份报告需要花费 M 个金币。 3. 一旦某份报告被缓存,后续再次遇到该文件时,无需再次扫描,可直接获取缓存结果。 现在小慕拿到了一组源代码文件的标识序列和对应的文件大小序列,请你帮助他设计合理的,计算出完成所有文件扫描所需的最少金币数。

提示:带虚线的词点一下有通俗解释。

输入描述

第一行为缓存一个报告金币数M,1 <= M <= 100 第二行为文件标识序列:F1,F2,F3,…,Fn。 第三行为文件大小序列:S1,S2,S3,…,Sn。 - 1 <= N <= 10000 - 1 <= Fi <= 1000 - 1 <= Si <= 10

输出描述

采用合理的缓存策略,需要的最少金币数

示例

示例 1

输入

5
1 2 2 1 2 3 4
1 1 1 1 1 1 1

输出

7

说明:文件大小相同,扫描成本均为1个金币。缓存任意文件均不合算,因而最少成本为7金币。

示例 2

输入

5
2 2 2 2 2 5 2 2 2
3 3 3 3 3 1 3 3 3

输出

9

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。