题目描述 静态扫描快速快速识别源代码的缺陷,静态扫描的结果以扫描报告作为输出:
1、文件扫描的成本和文件大小相关,如果文件大小为N,则扫描成本为N个金币
2、扫描报告的缓存成本和文件大小无关,每缓存一个报告需要M个金币
3、扫描报告缓存后,后继再碰到该文件则不需要扫描成本,直接获取缓存结果 给出源代码文件标识序列和文件大小序列,求解采用合理的缓存策略,最少需要的金币数 。
输入描述 第一行为缓存一个报告金币数M,1<=M<=100 第二行为文件标识序列:F1,F2,F3...Fn, 其中 1<=N<=10000, 1<=Fi<=1000 第三行为文件大小序列:S1,S2,S3...Sn, 其中 1<=N<=10000, 1<=Si<=10
输出描述 采用合理的缓存策略,需要的最少金币数
public static void main(String[] args) throws IOException { OD od=new OD(); int M=5; int[] F={1,2,2,1,2,3,4}; int[] S={1,1,1,1,1,1,1}; System.out.println(od.StaticCodeScanningService(M,F,S)); }
class OD{
public int StaticCodeScanningService(int M,int[] F,int[] S){ int[] countF=getFCount(F); int res=0; for (int i = 1