zoukankan      html  css  js  c++  java
  • PA2014-Final Zarowki

     

    解题报告

    • (题意)拥有的灯泡功率必须大于等于需要的,有k次机会换拥有的功率
    • 换的次数少于 需要换的灯泡数 时,输出NIE无解
    • 并不是一一对应的关系,因为这个灯泡可能其他拥有的的灯泡满足,而功率数可能更小; 也有可能没有灯泡可以给他用;
    • 所以我们应当把能满足大功率灯泡中较小功率的灯泡给大需求用户,而不是给一个需求量更小的灯泡(如样例中(拥有)7应该给(需求)7而不应该给(需求)5)
    • “小的灯泡能用则用,不能用的保留。”
      • #include<bits/stdc++.h>
        using namespace std;
        #define fr(i,z) for(int i = 1; i <= z; i++)
        
        const int N = 500500;
        int n,k,j = 1;
        int p[N],w[N];
        long long ans;
        
        priority_queue<int > t;
        priority_queue<int,vector<int>,greater<int> > q;
        
        bool cmp(int a,int b){return a>b;}  
        
        int main(){
            scanf("%d%d",&n,&k);
            fr(i,n)   scanf("%d",p + i);    
            fr(i,n)   scanf("%d",w + i);  
            sort(p + 1, p + n + 1, cmp);
            sort(w + 1, w + n + 1, cmp); //要从大到小比较,为了获得能满足要求的最小功率的灯泡
            
            fr(i,n){
                while(p[j] >= w[i])   q.push(p[j++]);  //把可以满足的都扔进堆里
                
                if(!q.empty()){  
                    ans += q.top();  
                    t.push(q.top() - w[i]);  //要记下差值,以便后面换灯泡
                    q.pop();
                    continue;
                }
                 
                k--;  //计数,判断是否无解 以及 最后剩余的可更换数
                ans += w[i];  //如果确定要换,那肯定是换等于需求功率的
                if(k < 0) {   //判断无解
                    cout << "NIE";
                    return 0;
                }
            }
            while(k--){  
                ans -= t.top();  //换的思路都是相同的
                t.pop();
            }
            printf("%d",ans);
        }
    停留是刹那,转身是天涯
  • 相关阅读:
    webDriver自动化操作(二)浏览器/页面信息属性操作
    webDriver自动化操作(一)元素定位和基础操作
    Selenium(一) Selenium和ChromeDriver的安装与配置
    Fiddler设置爬取app网页
    pycharm新建项目配置虚拟环境
    AIRTEST安装配置流程
    Jquery树插件zTree学习总结
    HTML中head标签内的使用标签详解
    Highcharts图表学习(二)
    noty-jQuery插件
  • 原文地址:https://www.cnblogs.com/aprincess/p/11621574.html
Copyright © 2011-2022 走看看