zoukankan      html  css  js  c++  java
  • 1504: ZZ的橱柜(长沙理工oj)

    http://www.acmore.net/problem.php?id=1504

    利用优先队列,转化成O(m)的复杂度。

    #include <iostream>
    #include <stdio.h>
    #include <string>
    #include <string.h>
    #include <algorithm>
    #include <math.h>
    #include <fstream>
    #include <vector>
    #include <map>
    #include <queue>
    #include <stack>
    using namespace std ;
    const int maxn = 400005;
    int n,m;
    int a[maxn],b[maxn];
    struct node{
        int i,j;
        int sum;
        void set(int ii,int jj,int s){
            i = ii; j = jj; sum = s;
        }
        friend bool operator<(const node &a,const node &b){
            return a.sum>b.sum;
        }
    };
    priority_queue<node>que;
    int sum[maxn];
    int main(){
        //freopen("test.txt","r",stdin);
        //freopen("out.txt","w",stdout);
        while(~scanf("%d%d",&n,&m)){
            memset(sum,0,sizeof(sum));
            while(!que.empty()) que.pop();
            for(int i = 0;i < n;i++)
                scanf("%d",a+i);
            for(int i = 0;i < n;i++)
                scanf("%d",b+i);
            sort(a,a+n);
            sort(b,b+n);
            node temp;
            for(int i = 0;i < n;i++){
                temp.set(i,0,a[i]+b[0]);
                que.push(temp);
            }
            node x,y;
            /*while(!que.empty()){
                printf("%d ",que.top().sum);
                que.pop();
            }*/
            for(int i = 0;i < m;i++){
               x = que.top();
               //printf("%d %d %d\n",x.i,x.j,x.sum);
               que.pop();
               sum[i] = x.sum;
               y.set(x.i,x.j+1,a[x.i]+b[x.j+1]);
               que.push(y);
            }
            for(int i = 0;i < m;i++)
                printf("%d\n",sum[i]);
       }
       return 0 ;
    }
  • 相关阅读:
    关于web测试收集
    Webdriver初探
    Java学习笔记 11/15:一个简单的JAVA例子
    持续集成环境搭建总结
    启动速度
    excel中用到的函数
    jmerter使用
    接口测试
    内存泄漏场景
    手机连接电脑那些事
  • 原文地址:https://www.cnblogs.com/Roly/p/3053263.html
Copyright © 2011-2022 走看看