比赛 叫图论的DP题 评测结果 AAAAAAAAAA
题目名称 开心的金明 最终得分 100
用户昵称 bear 运行时间 0.012 s
代码语言 C++ 内存使用 0.54 MiB
提交时间 2017-08-29 20:49:19
显示代码纯文本
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstdlib>
  4. #include <vector>
  5. #include <list>
  6. #include <queue>
  7. #include <map>
  8. #include <set>
  9. #include <utility>
  10. #include <string>
  11. #include <cstring>
  12. #include <sstream>
  13. #include <cmath>
  14. #include <limits>
  15. #include <algorithm>
  16. #include <iterator>
  17. #include <memory.h>
  18. #include <time.h>
  19.  
  20. using namespace std;
  21.  
  22. typedef unsigned long long ULL;
  23. typedef long long LL;
  24.  
  25. #define CUR_NAMESPACE namespace happy {
  26. CUR_NAMESPACE
  27.  
  28. const int N = 25;
  29. const int C = 3e4 + 5;
  30.  
  31. class Solver
  32. {
  33. private:
  34. int c, n;
  35. int prices[N];
  36. int values[N];
  37. LL dp[C];
  38. public:
  39. void Solve()
  40. {
  41. scanf("%d%d", &c, &n);
  42. for (int i = 0; i < n; i++) {
  43. scanf("%d%d", &prices[i], &values[i]);
  44. }
  45. for (int i = 0; i < n; i++) {
  46. for (int j = c; j >= prices[i]; j--) {
  47. dp[j] = max(dp[j], dp[j - prices[i]] + values[i] * prices[i]);
  48. }
  49. }
  50. printf("%lld\n", dp[c]);
  51. }
  52. } solver;
  53.  
  54. void Launch()
  55. {
  56. solver.Solve();
  57. }
  58.  
  59. #define NAMESPACE_END }
  60. NAMESPACE_END
  61.  
  62. int main()
  63. {
  64. freopen("happy.in", "r", stdin);
  65. freopen("happy.out", "w+", stdout);
  66. happy::Launch();
  67. return 0;
  68. }