• P2085 最小函数值 堆


      

    题目描述

    有n个函数,分别为F1,F2,...,Fn。定义Fi(x)=Ai*x^2+Bi*x+Ci (x∈N*)。给定这些Ai、Bi和Ci,请求出所有函数的所有函数值中最小的m个(如有重复的要输出多个)。

    输入输出格式

    输入格式:

    输入数据:第一行输入两个正整数n和m。以下n行每行三个正整数,其中第i行的三个数分别位Ai、Bi和Ci。Ai<=10,Bi<=100,Ci<=10 000。

    输出格式:

    输出数据:输出将这n个函数所有可以生成的函数值排序后的前m个元素。这m个数应该输出到一行,用空格隔开。

    输入输出样例

    输入样例#1: 复制
    3 10
    4 5 3
    3 4 5
    1 7 1
    
    输出样例#1: 复制
    9 12 12 19 25 29 31 44 45 54

    说明

    数据规模:n,m<=10000

    和上一题序列合并类似  用了类贪心思想 很重要!

    #include<bits/stdc++.h>
    using namespace std;
    //input by bxd
    #define rep(i,a,b) for(int i=(a);i<=(b);i++)
    #define repp(i,a,b) for(int i=(a);i>=(b);--i)
    #define RI(n) scanf("%d",&(n))
    #define RII(n,m) scanf("%d%d",&n,&m)
    #define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)
    #define RS(s) scanf("%s",s);
    #define ll long long
    #define pb push_back
    #define REP(i,N)  for(int i=0;i<(N);i++)
    #define CLR(A,v)  memset(A,v,sizeof A)
    //////////////////////////////////
    #define inf 0x3f3f3f3f
    const int N=100000+5;
    int a[N];
    int b[N];
    int heap[N];
    int from[N];
    int now[N];
    struct node
    {
        int a,b,c;
        int now;
        int v;
        bool operator< (const node & b)const
        {
            return v>b.v;
        }
    }s[N];
    
    int main()
    {
       priority_queue<node>q;
       int n,m;
       RII(n,m);
       rep(i,1,n)
       RIII(s[i].a,s[i].b,s[i].c),s[i].now=0;
       rep(i,1,n)
       {
           s[i].now++;
           int x=s[i].now;
           s[i].v=s[i].a*x*x+s[i].b*x+s[i].c;
           q.push(s[i]);
       }
        int cnt=1;
        node head;
        int last;
        while(cnt<=m)
        {
            head=q.top();q.pop();
            printf("%d ",head.v);
            int x=++head.now;
            head.v=( head.a*x*x+head.b*x+head.c);
            q.push(head);
            cnt++;
        }
    
        return 0;
    }
    View Code
  • 相关阅读:
    Elixir 学习资源
    elixir 模块
    elixir 表单 map
    elixir 关键字列表
    elixir case cond if
    elixir 模式匹配
    elixir 基础数据结构
    5、OpenCV Python ROI和泛洪填充
    6、OpenCV Python 图像模糊
    4、OpenCV Python 像素运算
  • 原文地址:https://www.cnblogs.com/bxd123/p/10804445.html
Copyright © 2020-2023  润新知