https://www.luogu.org/problem/show?pid=2085

题目描述

有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 <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#define maxn 1000015 using namespace std; int a,b,c,n,m,size;
int heap[maxn]; void put(int x)
{
int now,next;
heap[++size]=x;
if(size<=m)
{
now=size;
next=now/;
while(next>)
{
next=now/;
if(heap[now]<=heap[next]) break;
swap(heap[now],heap[next]);
now=next;
}
}
else
{
now=;
heap[now]=heap[size--];
while(now*<=m)
{
next=now*;
if(next<m&&heap[next]<heap[next+]) next++;
if(heap[now]>=heap[next]) return;
swap(heap[now],heap[next]);
now=next;
}
}
} void come_in(int a,int b,int c)
{ } int main()
{
cin>>n>>m;
cin>>a>>b>>c;
for(int x=;x<=m;x++)
{
int f=a*x*x+b*x+c;
put(f);
}
n--;
while(n--)
{
cin>>a>>b>>c;
for(int x=;x<=m;x++)
{
int f=a*x*x+b*x+c;
if(f>=heap[]) break;
put(f);
}
}
sort(heap+,heap+m+);
for(int i=;i<=m;i++)
cout<<heap[i]<<" ";
return ;
}

优先队列

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
#define forr(i,j,k) for(i=j;i<=k;i++) using namespace std; priority_queue<int,vector<int>,less<int> >que;
priority_queue<int,vector<int>,greater<int> >queu;
int n,m,a,b,c; int main()
{
cin>>n>>m;
int x,f;
cin>>a>>b>>c;
forr(x,,m)
{
f=a*x*x+b*x+c;
que.push(f);
}
n--;
while(n--)
{
cin>>a>>b>>c;
forr(x,,m)
{
f=a*x*x+b*x+c;
int topp=que.top();
if(f>=topp) break;
que.pop();
que.push(f);
}
}
forr(x,,m)
{
int toppp=que.top();
queu.push(toppp);
que.pop();
}
forr(x,,m)
{
cout<<queu.top()<<" ";
queu.pop();
}
return ;
}

P2085 最小函数值 洛谷的更多相关文章

  1. 最小函数值 洛谷P2085

    题目描述:          有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Ai*x^2+Bi*x+Ci (x∈N*).给定这些Ai.Bi和Ci,请求出所有函数的所有函数值中最小的m个( ...

  2. 洛谷P2085 最小函数值(minval)

    P2085 最小函数值(minval) 218通过 487提交 题目提供者该用户不存在 标签堆高级数据结构 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 暂时没有讨论 题目描述 有n个函数, ...

  3. P2085最小函数值(优先队列)

    P2085 最小函数值(minval) 题目描述 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Ai*x^2+Bi*x+Ci (x∈N*).给定这些Ai.Bi和Ci,请求出所有函数的所有 ...

  4. 洛谷P2085最小函数值题解

    题目 首先我们先分析一下题目范围,\(a,b,c\) 都是整数,因此我们可以得出它的函数值在\((0,+\infty )\)上是单调递增的,,然后我们可以根据函数的性质,将每个函数设置一个当前指向位置 ...

  5. [洛谷P2085]最小函数值

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

  6. 洛谷P2085——最小函数值

    题目描述 有n个函数,分别为\(F_1,F_2,...,F_n\).定义\(F_i(x)=A_i*x^2+B_i*x+C_i (x∈N*)\).给定这些\(A_i.B_i和C_i\),请求出所有函数的 ...

  7. 洛谷 P2085 最小函数值

    目录 题目 思路 \(Code\) 题目 戳 思路 首先这些函数全部单带递增,因为\(a\),\(b\),\(c\)都是正整数. 我们将全部的函数的\(x\)为\(1\)时的函数值放入优先度列(小根堆 ...

  8. P2085 最小函数值(minval)

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

  9. P2085 最小函数值 (堆)

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

随机推荐

  1. 人脸识别源代码Open cv

    #include <stdio.h> #include <string.h> #include "cv.h" #include "cvaux.h& ...

  2. java设计模式基础 - 解决某一类问题最行之有效的方法,框架是大的设计模式.

    一.单例模式(Singleton) 1.单例对象(Singleton)是一种常用的设计模式.在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在.这样的模式有几个好处: 1>某 ...

  3. iOS UIView中的坐标转换convertPoint --- iOS开发系列 ---项目中成长的知识六

    如果你的UITableViewCell里面有一个Button需要响应事件,你会怎么做? 在Controller中使用 button父类的父类?   例如:UITableViewCell *parent ...

  4. BZOJ3301 P2524 UVA11525 算法解释康托展开

    这三个题的代码分别对应第二个第一个第三个 在刘汝佳蓝书上我遇到了这个康托展开题. 当时去了解了一下,发现很有意思 百度上的康托展开定义 原理介绍 编辑 康托展开运算 其中, 为整数,并且 . 的意义为 ...

  5. 如何优化sql查询

    借鉴https://www.cnblogs.com/ssrstm/p/5753068.html和https://www.cnblogs.com/exe19/p/5786806.html 1. 对查询进 ...

  6. 【Java_基础】Java内部类详解

    1.四种内部类 java中的四种内部类:成员内部类.静态内部类.局部内部类和匿名内部类.其中匿名内部类用到的最多. 1.1.成员内部类 若一个类定义在另一个类的内部作为实例成员,我们把这个作为实例成员 ...

  7. pandas模块(很详细归类),pd.concat(后续补充)

    6.12自我总结 一.pandas模块 import pandas as pd约定俗称为pd 1.模块官方文档地址 https://pandas.pydata.org/pandas-docs/stab ...

  8. python爬虫入门四:BeautifulSoup库(转)

    正则表达式可以从html代码中提取我们想要的数据信息,它比较繁琐复杂,编写的时候效率不高,但我们又最好是能够学会使用正则表达式. 我在网络上发现了一篇关于写得很好的教程,如果需要使用正则表达式的话,参 ...

  9. uboot的readme

    ## (C) Copyright 2000 - 2008# Wolfgang Denk, DENX Software Engineering, wd@denx.de.## See file CREDI ...

  10. JavaScript正则表达式-字符

    普通字符 大小写字母.数字.其他任何符号. 转义字符 转义字符 含义 \f 换页符 \n 换行符 \r 回车符 \t 制表符 \b 退格符 \o 空字符 \xnn 由十六进制数nn指定的ASCII码对 ...