CJOJ 2484 函数最小值 / Luogu 2085 函数最小值(STL优先队列,堆)
CJOJ 2484 函数最小值 / Luogu 2085 函数最小值(STL优先队列,堆)
Description
有n个函数,分别为F1,F2,...,Fn。定义 \(Fi(x)=Aix^2+Bix+Ci(x∈N^∗)\)。给定这些Ai、Bi和Ci,请求出所有函数的所有函数值中最小的m个(如有重复的要输出多个)。
Input
第一行输入两个正整数n和m,n<=500000, m<=500000
以下n行每行三个正整数,其中第i行的三个数分别为Ai、Bi和Ci。输入数据保证Ai<=10,Bi<=100,Ci<=10000。
Output
输出将这n个函数所有可以生成的函数值排序后的前m个元素。
这m个数应该输出到一行,用空格隔开,并且最后一个数右侧也有一个空格。
Sample Input
3 10
4 5 3
3 4 5
1 7 1
Sample Output
9 12 12 19 25 29 31 44 45 54
Http
CJOJ:http://oj.changjun.com.cn/problem/detail/pid/2484
Luogu:https://www.luogu.org/problem/show?pid=2085
Source
STL优先队列 堆
题目大意
有n个二次函数,均满足\(Fi(x)=Aix^2+Bix+Ci\),x为正整数,a,b,c均为大于等于0的数,求所有函数的所有函数值中最小的m个,如果有重复则要输出多个
解决思路
想要做出这道题目,首先你要有基础的二次函数知识。
观察题目中的各个值的范围,首先因为a,b,c>0,所以这些二次函数都满足开口向上且对称轴在x轴负半轴。那么我们就可以知道Fi(1)一定是第i个函数的最小值,那么我们把所有的Fi(1)加入一个优先队列(小的优先),每次取出对首元素输出,在把队首元素所对应的的函数的下一个值放入优先队列,循环m次就可以了。(是不是有一点像spfa算法呢?)
代码
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
class Function//存下每一个函数的三个参数的值
{
public:
long long a,b,c;
};
class Value//优先队列中存取的元素
{
public:
long long data,num,x;//data表示是第num个函数在自变量取x时候的值 即data=Fnum(x)
};
bool operator < (Value a,Value b)//重载小于号(优先队列中要用),注意是相反的
{
return a.data>b.data;
}
const int maxN=500000;
int n,m;
priority_queue<Value> Q;
Function F[maxN];
long long solve(long long num,long long x);//计算Fnum(x)的值
int main()
{
cin>>n>>m;
for (int i=1;i<=n;i++)
{
cin>>F[i].a>>F[i].b>>F[i].c;
Q.push((Value){solve(i,1),i,1});//将初始的每个Fi(1)都放入优先队列
}
for (int i=1;i<=m;i++)
{
Value x=Q.top();//取出队首元素并输出
Q.pop();
cout<<x.data<<' ';
Q.push((Value){solve(x.num,x.x+1),x.num,x.x+1});//将队首元素对应的函数的下一个值放入优先队列
}
return 0;
}
long long solve(long long num,long long x)
{
return F[num].a*x*x+F[num].b*x+F[num].c;
}
CJOJ 2484 函数最小值 / Luogu 2085 函数最小值(STL优先队列,堆)的更多相关文章
- CJOJ 2482 【POI2000】促销活动(STL优先队列,大根堆,小根堆)
CJOJ 2482 [POI2000]促销活动(STL优先队列,大根堆,小根堆) Description 促销活动遵守以下规则: 一个消费者 -- 想参加促销活动的消费者,在账单下记下他自己所付的费用 ...
- 如何使用sql函数平均值、总数、最小值、最大值
使用sql函数,您可以在一个select语句的查询当中,直接计算数据库资料的平均值.总数.最小值.最大值.总和.标准差.变异数等统计.使用recordset对象时,也可使用这些sql函数. sql函数 ...
- 数据库开发基础-SQl Server 聚合函数、数学函数、字符串函数、时间日期函数
SQL 拥有很多可用于计数和计算的内建函数. 函数的语法 内建 SQL 函数的语法是: SELECT function(列) FROM 表 函数的类型 在 SQL 中,基本的函数类型和种类有若干种.函 ...
- SQL ServerOVER 子句,over开窗函数,SQL SERVER 开窗函数
https://technet.microsoft.com/zh-cn/library/ms189461(v=sql.105).aspx http://www.cnblogs.com/85538649 ...
- python函数: 内置函数
forthttp://blog.csdn.net/pipisorry/article/details/44755423 Python内置函数 Python内置(built-in)函数随着python解 ...
- C:函数指针、回调函数
函数指针 是一个指针,指向函数的指针,指针存放的都是地址,所以函数指针存放的是函数的地址.数组名就是数组的首地址,函数名就是函数的首地址.与数组类似. 代码demo int (*p) (int ,in ...
- C++ template学习一(函数模板和模板函数)
函数模板和模板函数(1)函数模板函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计.它的最大特点是把函数使用的数据类型作为参数.函数模板的声明形式为:templat ...
- python/匿名函数和内置函数
1 匿名函数 匿名函数是lambda定义的没有名字的具有一些小功能的函数 具体形式是 lambda 参数列表:返回值表达式 lambda x: X**2 # 求平方操作 lambda x: x> ...
- Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数
Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数 目录 Pycharm使用技巧(转载) Python第一天 ...
随机推荐
- VR全景智慧城市搭建掀起实体市场潮流
在互联网时代的今天,用户体验至上,全景智慧城市搭建作为一个新型的科技展示技术,通过新颖的广告方式更能吸引用户眼球,足不出户,观看现场实景,达到沉浸式体验.在这样的大环境下,全景智慧城市搭建开启了VR全 ...
- MySql俩种分页区别(注意)
注意俩个分页的区别哦~ SELECT * FROM city LIMIT 2 OFFSET 1; 从第二条记录开始 取二条记录 如下: SELECT * FROM city LIMIT 3,2; 从第 ...
- SqlDataReader 之指定转换无效
//获取最新显示顺序数据 string str = string.Format(@"if exists(select ShowOrder from GIS_FuncDefaultLayer ...
- Scala note 1
Recently I transit to use scala to program. scala is a functional and objected oriented language, bu ...
- 利用Excel做一些简单的数据分析
先来几个原始数据的截图,如下所示: 示例图就举一个吧,因为这些数据量还挺大的,大概的总结了一下,这下列这几栏中不合规范的数据占比很大: (1)民族(经分析,在此表中所涉及到的民族分别为:汉族,满族,蒙 ...
- window.close()方法对谷歌和火狐浏览器无效
在近期的项目中,遇到了一个问题,就是用户到新浪支付进行操作,操作成功后,指定到一个网页,需求是点击确定,关闭该网页.需求出来以后认为这种就是小菜一碟,直接用 window.close()方法就可以实现 ...
- java知识点整理
1 java 和Tomcat总结 脑图地址 (其中web 容器部分还需要继续完善,但是没找到相关文档) 跟着java Se 文档梳理了一下学习路线图(方便全面掌握要点,及时对自己查漏补缺),以及一些 ...
- 如何运行jar文件
比如我要执行G:/weblogic文件夹下面的wls1036_generic.jar 文件. 1.cmd 2.跳转到G盘(G:回车),如果jar文件在桌面上,运行cd desktop进入桌面再定位到文 ...
- nginx二级域名配置自动跳转到一级域名
nginx二级域名配置自动跳转到一级域名 rewrite配置内容: if ($http_host !~ "^www.aaa.com$") { rewrite ^(.*) http: ...
- 框架基础:ajax设计方案(五)--- 集成promise规范,更优雅的书写代码
距离上一篇博客书写,又过去了大概几个月了,这段时间暂时离开了这个行业,让大脑休息一下.一个人旅行,一个人休息,正好也去完成一个目标 --- 拥有自己的驾照.当然,也把自己晒的黑漆马虎的.不过这一段时间 ...