3637 Shopaholic 简单贪心

来源:互联网 发布:淘宝怎么拒签退款流程 编辑:程序博客网 时间:2024/04/27 15:41

题意:购物打折:每三件商品,只需支付两种最贵物品的钱,可以采取不同的购物组合策略,给一组物品,求最大折扣策略。

很显然,最贪心的策略是,每次都从剩余的物品中选取最贵的三种进行支付,即可获得最大折扣。

输入数据量比较大,可以用scanf减少用时。

代码如下:

  1. #include  <iostream>
  2. #include  <algorithm>
  3. using  namespace  std;
  4. int  main()
  5. {
  6.     long   t, n, k, sum, p[20000];
  7.     
  8.     cin >> t;
  9.     
  10.     while (t--)
  11.     {
  12.         cin >> n;
  13.         
  14.         for (k = 0; k < n; ++k)
  15.         {
  16.             cin >> p[k];
  17.         }    
  18.         
  19.         sort(p, p + n);
  20.         
  21.         sum = 0;
  22.         
  23.         for (k = n - 3; k >= 0; k -= 3)
  24.         {
  25.             sum += p[k];
  26.         }
  27.         
  28.         cout << sum << endl;  
  29.     }
  30.         
  31.     return  0;
  32. }     
原创粉丝点击