>传送门<

题意:现在需要捕$n$条鱼并且将它们煮熟来吃。每条鱼要煮相应的时间才能吃(可以多煮一会),锅里每次只能煮一条鱼,捕一条鱼的时间是相同的,但是在捕鱼的时间内不能做其他事(比如换一条鱼煮),求把所有的鱼都煮熟最少需要多少时间。
思路:这里提供一种比较好理解的想法,来自$yx$学长

你想一下,我们要吃鱼的话鱼肯定是要煮熟的,所以煮鱼的时间必须要花出去,我们这里可以先把煮鱼的时间统计到一起。题目是要求我们尽可能的节省时间,所以我们除了第一条鱼以外,其他的鱼可以在煮的时候钓,这样能最大利用时间

对于第$i$条鱼,炖它的时候我们可以不浪费时间抓到$t_{i}/k$条鱼,或者浪费$k-t_{i}\%k$的时间抓到$t_{i}/k+1$条鱼.所以如果$\sum_{i=1}^{n}t_{i}/k\geq n-1$,则可以不浪费时间完成任务;如果$\sum_{i=1}^{n}t_{i}/k<n-1$,则差$m$条鱼就选炖$t_{i}\%k$前$m$大的鱼的时候浪费时间多抓一条鱼。

Code

#include<iostream>
#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
int t, n, k, x;
int a[100005];
int main()
{
scanf("%d", &t);
while (t--) {
scanf("%d%d", &n, &k);
ll cnt = 0, ans = k; //钓第一条鱼的时间
for (int i = 1; i <= n; i++) {
scanf("%d", &x); ans += x;
cnt += x / k; //每条鱼煮的时候能够钓多少条鱼
a[i] = x%k;
}
sort(a + 1, a + n + 1);
for (int i = n; i >= cnt + 2; i--) //剩下的鱼还需要多煮几分钟才能钓上来
ans = ans + k - a[i];
printf("%lld\n", ans);
}
}

[CCPC2019网络赛] 1008-Fishing Master(思维)的更多相关文章

  1. HDU 4745 Two Rabbits (2013杭州网络赛1008,最长回文子串)

    Two Rabbits Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Tota ...

  2. CCPC2019网络赛总结

    比赛那会过了两道题,哇贼激动,然后后面就没有然后了... 1003我想到用$kmp$,于是不会$kmp$的我开始找板子套,结果$TLE$,就觉得应该是优化不行,优化后AC妥妥$TLE$,就放弃了. 钓 ...

  3. 2016 年沈阳网络赛---QSC and Master(区间DP)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5900 Problem Description Every school has some legend ...

  4. 2016沈阳网络赛 QSC and Master

    QSC and Master Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  5. CCPC2019网络赛

    2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛 A 题意:找到最小的正整数 C 使得 (A^C)&(B^C) 最小. \(A,B \le 10^9\) 签到题.这个C取 A& ...

  6. The Karting 2017ccpc网络赛 1008

    The Karting championship will be held on a straight road. There are N keypoints on the road. The pat ...

  7. HDU 5877 Weak Pair (2016年大连网络赛 J dfs+反向思维)

    正难则反的思想还是不能灵活应用啊 题意:给你n个点,每个点有一个权值,接着是n-1有向条边形成一颗有根树,问你有多少对点的权值乘积小于等于给定的值k,其中这对点必须是孩子节点与祖先的关系 我们反向思考 ...

  8. 2017青岛网络赛1008 Chinese Zodiac

    Chinese Zodiac Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) T ...

  9. HDU 6709“Fishing Master”(贪心+优先级队列)

    传送门 •参考资料 [1]:2019CCPC网络选拔赛 H.Fishing Master(思维+贪心) •题意 池塘里有 n 条鱼,捕捉一条鱼需要花费固定的 k 时间: 你有一个锅,每次只能煮一条鱼, ...

随机推荐

  1. 直播预告 | 开源的云原生开发环境 —— Nocalhost

    直播来啦!本次云原生学院邀请到腾讯云 CODING DevOps 后端工程师王炜为大家分享<开源的云原生开发环境 -- Nocalhost>. 直播信息 讲师:王炜 - 腾讯云 CODIN ...

  2. 【MyBatis】MyBatis 缓存

    MyBatis 缓存 文章源码 什么是缓存 像大多数的持久化框架一样,MyBatis 也提供了缓存策略,通过缓存策略来减少数据库的查询次数,从而提高性能. Mybatis 中缓存分为一级缓存,二级缓存 ...

  3. 【Oracle】归档日志的删除操作

    [root@sha3 oracle]# rman target / Recovery Manager: Release 10.2.0.4.0 - Production on Tue Jan 20 01 ...

  4. kubernets之Deployment资源

    一  声明式的升级应用 1.1  回顾一下kubernets集群里面部署一个应用的形态应该是什么样子的,通过一副简单的图来描述一下 通过RC或者RS里面的模板创建了三个pod,之后通过一个servci ...

  5. mysql—make_set函数

    使用格式:MAKE_SET(bits,str1,str2,-) 1 返回一个设定值(含子字符串分隔字符串","字符),在设置位的相应位的字符串.str1对应于位0,str2到第1位 ...

  6. oracle rac搭建单实例DG步骤(阅读全篇后再做)

    环境介绍 主库: 主机名 rac01 rac02 实体IP 10.206.132.232 10.206.132.233 私有IP 192.168.56.12 192.168.56.13 虚拟IP 10 ...

  7. 干电池升压5V,功耗10uA

    PW5100干电池升压5V芯片 输出电容: 所以为了减小输出的纹波,需要比较大的输出电容值.但是输出电容过大,就会使得系统的 反应时间过慢,成本也会增加.所以建议使用一个 22uF 的电容,或者两个 ...

  8. Zabbix监控虚拟机服务-告警与自动恢复-模板化

    上一篇文章测试了服务的告警与自动恢复:Zabbix监控虚拟机服务-告警与自动恢复 但是我是直接为某一个主机增加的监控项和触发器, 如果要让某一个自定义的监控项和触发器被很多机器共用,则需要创建模板 1 ...

  9. 如果using语句中出现异常,资源会被释放掉吗?

    <CLR Via C#>第三版 P489 在using内部抛出了异常,被using的对象还是会被释放掉. Using编译时会自动生成Try Finally代码块. 同样Using只能用于实 ...

  10. Vue基础之Vue的模板语法

    Vue基础之Vue的模板语法 数据绑定 01 数据绑定最常见的形式就是使用插值表达式(两个大括号!)[也就是小胡子语法!mustache] <body> <!-- Vue.js的应用 ...