#5955. 【模板】完全背包-滚动数组优化

【模板】完全背包-滚动数组优化

题目描述

仓库里有 NN 种零件,每种零件都有无限多个。第 ii 种零件的重量为 WiW_i,价值为 CiC_i

工人师傅有一个最大承重为 MM 的工具箱,他想在不超过工具箱承重的前提下,选择若干个零件(可以选同一种零件多次),使得所选零件的总价值最大。

请你帮工人师傅计算这个最大总价值。

输入格式

第一行:两个整数 MMNN,分别表示工具箱最大承重和零件种类数。

接下来 NN 行:每行两个整数 Wi,CiW_i, C_i,分别表示第 ii 种零件的重量和价值。

输出格式

一行,一个整数,表示最大总价值。

样例

10 4
2 1
3 3
4 5
7 9
12

样例解释
最优方案:选一个重量为 77 价值为 99 的零件,再选一个重量为 33 价值为 33 的零件,总重量 7+3=107+3=10,总价值 9+3=129+3=12。可以证明这是最大值。

数据范围

  • 1M1041 \le M \le 10^4
  • 1N1041 \le N \le 10^4
  • 1Wi,Ci1001 \le W_i, C_i \le 100