• 【HDU6709】Fishing


    题目大意:有 N 条鱼,每条鱼都有钓鱼和烤鱼的时间,钓鱼的时间均相同,每条鱼都有自己的烤鱼时间,一次只能烤一条鱼,且不能间断。现要求通过某种顺序将所有的鱼钓上来并烤完,求最小的时间是多少。

    题解:
    对于顺序可以自选的情况,可以从全局的角度进行考虑。对于最终状态,每条鱼被烤的时间和钓鱼的总次数是固定的,且一定要先钓上来一条鱼。最好情况就是所有的其他鱼均可以在烤鱼的时候钓上来。不过,可能会存在一些烤鱼的时间无法满足钓上来一整条鱼的时间。因此,可能会出现正在钓鱼但是锅里没有鱼的情况,这部分时间是被浪费的时间。那么,我们只需要使得这部分的时间最小即可,即:用这些最小的时间去钓鱼,其他剩余的时间等待,保证总有鱼在锅里煮。

    代码如下

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    
    int main() {
    	int T;
    	scanf("%d", &T);
    	while (T--) {
    		static int n, k;
    		scanf("%d %d", &n, &k);
    		vector<int> t(n + 1), waste(n + 1);
    		LL ans = k;
    		int cnt = 0;
    		for (int i = 1; i <= n; i++) {
    			scanf("%d", &t[i]);
    			ans += t[i];
    			cnt += t[i] / k;
    			waste[i] = k - t[i] % k;
    		}
    		if (cnt >= n - 1) {
    			printf("%lld
    ", ans);
    		} else {
    			sort(waste.begin(), waste.end());
    			int need = n - 1 - cnt;
    			for (int i = 1; i <= need; i++) {
    				ans += waste[i];
    			}
    			printf("%lld
    ", ans);
    		}
    	}
    	return 0;
    }
    
  • 相关阅读:
    Python 于 webgame 的应用(上)
    TCP Nagle剖析
    配置Windows下的Git 服务器简易教程
    程序员的绘图利器 — Graphviz
    patch的制作和使用
    PyCon China 2012,我们上海见!
    Python 于 webgame 的应用(下)
    TCP接收缓存大小的动态调整
    TCP的TSO处理
    上传压死下载 & 常见TCP选项
  • 原文地址:https://www.cnblogs.com/wzj-xhjbk/p/11425396.html
Copyright © 2020-2023  润新知