zoukankan      html  css  js  c++  java
  • C3-Zexal的浩瀚星辰

    题目描述

    Zexal想要发射火箭,但是由于能源供应不足了,所以一些火箭需要延迟发射。 每个火箭每延迟一小时发射都会相应的损失。Zexal了解到,一共有n个火箭,其中第i个火箭原计划在第i小时发射,即1~n时间段发射,现预计k小时后电力可以恢复正常,即所有火箭将在k+1~k+n时间段内发射,

    新的火箭发射计划不要求按照最初的发射计划顺序,唯一的要求是每个火箭都不能早于原定时间发射。请你帮忙计算一下最小的损失吧。

    注意:时间均以小时为最小单位。由于条件有限,一次只能发射一枚火箭。

    输入

    输入包含多组数据。

    每组数据第一行为正整数nk1n500000,1k500000),为火箭总数和延迟时间。

    接下来是n个正整数 pi,代表第i个火箭每延迟一小时的损失费(1≤pi≤104)。

    输出

    对于每组数据,输出一行,为最小的损失费用。

    输入样例

    1 2
    10
    2 1
    10 100

    输出样例

    20
    20

    代码

    #include <iostream>
    #include <algorithm>
    #include <queue>
    using namespace std;
    struct gun
    {
        int l,p;
    } s[500005];
    bool operator<( gun x, gun y)
    {
        if(x.p==y.p)
            return x.l<y.l;
        return x.p < y.p;
    }
    priority_queue<gun> Q;
    int main()
    {
        int n,k;
        while(cin>>n>>k)
        {
            long long ans = 0;
            for(int i = 0; i < n; i++)
            {
                cin>>s[i].p;
                s[i].l = i;
            }
            for(int i = 0; i < k; i++)
                Q.push(s[i]);
            for(int i = k; i < k+n; i++)
            {
                if(i < n) Q.push(s[i]);
                gun t = Q.top();
                ans += (long long )(i - t.l) * t.p;
                Q.pop();
            }
            cout << ans <<endl;
        }
    
        return 0;
    }
  • 相关阅读:
    request 请求 转 json
    图片缩略图 简单应用
    文件压缩下载 和 解压缩并解析
    简单 map 与 xml 互转
    SVN+vs2017
    cordova生成签名的APK
    海关 实时数据 企业联调接口 总结
    vs2017远程调试
    X509证书 指定了无效的提供程序类型 System.Security.Cryptography.CryptographicException 错误解决方法
    微信公众号开发 ,redirect_uri域名还是与后台配置不一致
  • 原文地址:https://www.cnblogs.com/kubab119/p/11823213.html
Copyright © 2011-2022 走看看