2016CCPC Finals[HDU-5999]The Third Cup is Free题解

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=5999

The Third Cup is free

Panda and his friends were hiking in the forest. They came across a coffee bar inside a giant tree trunk.

Panda decided to treat everyone a cup of coffee and have some rest. Mr. Buck, the bartender greeted Panda and his animal friends with his antler. He proudly told them that his coffee is the best in the forest and this bar is a Michelin-starred bar, thats why the bar is called Starred Bucks.

There was a campaign running at the coffee bar: for every 3 cups of coffee, the cheapest one is FREE. After asking all his friends for their flavors, Panda wondered how much he need to pay.

Input

The first line of the input gives the number of test cases, T.

T test cases follow. Each test case consists of two lines. The first line contains one integer N, the number of cups to be bought.

The second line contains N integers p1,p2,⋅⋅⋅,pNp1,p2,···,pN representing the prices of each cup of coffee.

Output

For each test case, output one line containing “Case #x: y”, where x is the test case number (starting from 1) and y is the least amount of money Panda need to pay.

limits

  • 1 ≤ T ≤ 100.
  • 1 ≤ N ≤ 105105.
  • 1 ≤ pi ≤ 1000.

Sample

Input

2
3
1 2 3
5
10 20 30 20 20

Output

Case #1: 5
Case #2: 80

容易踩的坑

用从小到大排序后,减去杯数/3杯最便宜的咖啡的方法。

这种方法很显然,减去的是一堆便宜咖啡中最便宜的咖啡,不是最少花费

思路

那么接下来就很清晰了,连续读入每杯咖啡的价格,然后进行从大到小排序,加入一个cnt计数当前第几杯,每当读取到第三杯时,则不把当前咖啡计入总价格内。

具体解法

  1. 排序优化:利用数组下标为价格的方式来存储每个价格咖啡的杯数,从而省去一个排序的耗时。如n[20]为价格为20元的咖啡的杯数。
  2. 然后开搞
#include<stdio.h>
int n[1050];//咖啡价格区间
int main(void) {
   
 int T, k = 1, a;
 scanf("%d", &T);
 while (T--)
 {
   
  long long ans = 0, cnt = 0, cups;
  scanf("%lld", &cups);
  for (int i = 0; i < cups; i++)//开始读取
    {
   
   scanf("%d", &a);
   n[a]++;
  }
  for (int i = 1000; i > 0; i--)
  {
   
   while (n[i])
   {
   
    cnt++;
    if (!(cnt % 3))
     cnt = 0;
    else ans += i;
    n[i]--;
   }
  }
  printf("Case #%d: %lld\n", k++, ans);
 }
 return 0;
}

TLE

Accept

杂谈

这种排序法,在不要求输入次序的时候蛮好用的。
主要纪念一下第一次荣登VJ排行榜,留个小纪念。

感谢阅读 如有想法欢迎在评论区交流

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-27 10:48
点赞 评论 收藏
分享
球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
11-27 12:36
已编辑
门头沟学院 前端工程师
Apries:这个阶段来说,很厉害很厉害了,不过写的简历确实不是很行,优势删掉吧,其他的还行
点赞 评论 收藏
分享
评论
点赞
收藏
分享
正在热议
# 25届秋招总结 #
443331次浏览 4520人参与
# 春招别灰心,我们一人来一句鼓励 #
42187次浏览 537人参与
# 阿里云管培生offer #
120431次浏览 2220人参与
# 地方国企笔面经互助 #
7973次浏览 18人参与
# 同bg的你秋招战况如何? #
77166次浏览 569人参与
# 实习必须要去大厂吗? #
55811次浏览 961人参与
# 北方华创开奖 #
107469次浏览 600人参与
# 虾皮求职进展汇总 #
116310次浏览 887人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11683次浏览 289人参与
# 实习,投递多份简历没人回复怎么办 #
2454962次浏览 34861人参与
# 提前批简历挂麻了怎么办 #
149927次浏览 1978人参与
# 在找工作求抱抱 #
906096次浏览 9421人参与
# 如果公司给你放一天假,你会怎么度过? #
4762次浏览 55人参与
# 你投递的公司有几家约面了? #
33209次浏览 188人参与
# 投递实习岗位前的准备 #
1196037次浏览 18550人参与
# 机械人春招想让哪家公司来捞你? #
157648次浏览 2267人参与
# 双非本科求职如何逆袭 #
662384次浏览 7397人参与
# 发工资后,你做的第一件事是什么 #
12806次浏览 62人参与
# 工作中,努力重要还是选择重要? #
35906次浏览 384人参与
# 简历中的项目经历要怎么写? #
86937次浏览 1516人参与
# 参加完秋招的机械人,还参加春招吗? #
20153次浏览 240人参与
# 我的上岸简历长这样 #
452074次浏览 8089人参与
牛客网
牛客企业服务