zoukankan      html  css  js  c++  java
  • luogu 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

    每次取出函数值,计算后插入新的,heap维护

    #include<cstdio>
    #include<queue>
    using namespace std;
    priority_queue<int> que;
    const int maxn = 10007;
    int a[maxn],b[maxn],c[maxn],f[maxn][maxn];
    int main()
    {
        int m,n;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;++i) {
               scanf("%d%d%d",a+i,b+i,c+i);
        }    
        for(int i=1;i<=n;++i) {
               for(int w=1;w<=100;++w) {
                f[i][w]=a[i]*w*w+b[i]*w+c[i]; 
                que.push(-f[i][w]);
            }
        }
        for(int i=1,tmp;i<=m;++i){
            tmp=que.top();
            que.pop();
            printf("%d ",-tmp);
        }
        puts("");
        return 0;
    }
  • 相关阅读:
    初步使用redis
    redis配置文件介绍
    windows64位 redis安装 步骤
    敏感词过滤算法
    SpringBoot使用拦截器无效
    linux常用命令
    automation(一)
    JAVA的接口多态
    JAVA的多态(强制转换)
    JAVA的多态
  • 原文地址:https://www.cnblogs.com/sssy/p/7718380.html
Copyright © 2011-2022 走看看