【Luogu2085】最小函数值(优先队列)
problem
- 给定n个二次函数(ai,bi,ci > 0)
- 求前m小的fi(x)值,x>0
- n, m < 1e4。
solution
- 因为都大于0了,所以全都是单增的。。x=1 时各函数值最小
- 维护一个小根堆,初始时是n个x=1 的函数值。
- 之后每次弹出最小的并将他的下一个函数值放入堆中。
codes
#include<iostream>
#include<queue>
using namespace std;
const int maxn = 1e4+5;struct func{int a, b, c;}f[maxn];
struct var{int num,x,val;}res[maxn];
bool operator < (var a, var b){return a.val>b.val;}
priority_queue<var,vector<var>,less<var> >q;int main(){int n, m;cin>>n>>m;for(int i = 1; i <= n; i++){cin>>f[i].a>>f[i].b>>f[i].c;q.push((var){i,1,f[i].a+f[i].b+f[i].c});}for(int i = 1; i <= m; i++){var t = q.top(); q.pop();cout<<t.val<<' ';q.push(var{t.num,t.x+1,f[t.num].a*(t.x+1)*(t.x+1)+f[t.num].b*(t.x+1)+f[t.num].c});}return 0;
}
【Luogu2085】最小函数值(优先队列)相关推荐
- P2085 最小函数值(优先队列 分组法运用)
最小函数值 题目描述 有 nnn 个函数,分别为 F1,F2,-,FnF_1,F_2,\dots,F_nF1,F2,-,Fn.定义 Fi(x)=Aix2+Bix+Ci(x∈N∗)F_i(x)=A ...
- 洛谷 一种堆套路 P1631序列合并、P2085最小函数值
题目链接 序列合并 最小函数值 题解 这两道题做法基本一样,是使用同一种套路解决的,这里用序列合并来举例说明. 序列合并要求出N2N2N^2个和中最小的N个数. 我们用一个堆来维护我们需要的数,并且保 ...
- 数据结构之优先队列:最小索引优先队列,Python代码实现——15
最小索引优先队列(Min index priority queue) 在之前实现的最大优先队列和最小优先队列,他们可以分别快速访问到队列中最大元索和最小元素,但是他们有一 个缺点,就是没有办法通过索引 ...
- [优先队列] 洛谷 P2085 最小函数值
题目描述 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Ai*x^2+Bi*x+Ci (x∈N*).给定这些Ai.Bi和Ci,请求出所有函数的所有函数值中最小的m个(如有重复的要输出多个 ...
- P2085 最小函数值 堆
题目描述 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Ai*x^2+Bi*x+Ci (x∈N*).给定这些Ai.Bi和Ci,请求出所有函数的所有函数值中最小的m个(如有重复的要输出多个 ...
- LeetCode 1962. 移除石子使总数最小(优先队列)
文章目录 1. 题目 2. 解题 1. 题目 给你一个整数数组 piles ,数组 下标从 0 开始 ,其中 piles[i] 表示第 i 堆石子中的石子数量. 另给你一个整数 k ,请你执行下述操作 ...
- 最小函数值(信息学奥赛一本通-T1370)
[题目描述] 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Aix2+Bix+Ci(x∈N∗).给定这些Ai.Bi和Ci,请求出所有函数的所有函数值中最小的m个(如有重复的要输出多个). ...
- 最小函数值(minval)
有n个函数,分别为F1,F2,-,Fn.定义Fi(x)=Ai*x^2+Bi*x+Ci(x∈N*).给定这些Ai.Bi和Ci,请求出所有函数的所有函数值中最小的m个(如有重复的要输出多个). [输入格式 ...
- 1370:最小函数值(minval)
[题目描述] 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Aix2+Bix+Ci(x∈N∗).给定这些Ai.Bi和Ci,请求出所有函数的所有函数值中最小的m个(如有重复的要输出多个). ...
最新文章
- ORA-16629: database reports a different protection
- VS2015编译TensorFlow C++程序完全攻略
- 创业中创新驱动能力_创业培训课程:创新思维能力塑造
- Bellman-Ford算法
- Properties常用方法
- Redis:21---客户端相关配置篇
- 在BingoCC上面解析域名实现智能路由
- 【对讲机的那点事】对讲机天馈系统关键元器件之功分器
- Python – GitHub CentOS
- 四阶龙格库塔法程序c语言,四阶龙格库塔法
- python基础入门1
- 使用 Byzanz 录制 Gif 动画或 Ogv 视频
- Tapestry的使用
- 动态规划石子排序java_动态规划之石子归并
- Win10电脑没有打开蓝牙的按钮怎么办?
- 淘宝鹊桥计算工具安卓版小程序
- java中hashmap遍历的几种方法
- 用智能人脸识别门禁管理工地更严谨考勤更方便
- 备忘1:爬取热门微博评论
- SQL SERVER 2008中使用VARBINARY(MAX)进行二进制数据存取的实现方法
热门文章
- Boltzmann 玻尔兹曼机(BM)
- 【剑指 offer】(二十三)—— 从上往下打印二叉树(或曰层次遍历、广度优先遍历)
- Trick(十二)——统计 label(序列)各个标签值出现的次数以及出现次数最多的标签
- C++中的萃取机制(traits)
- linux的进程和作业控制实验报告,Linux基础--进程管理和作业控制
- c++数据结构中 顺序队列的队首队尾_数据结构与算法—队列图文详解
- 老男孩python14期全套-老男孩第十四期Python学习班之Day01
- python有什么用-python有什么用
- python发音1001python发音-Python学习笔记Day3 - Python运算符
- 开课吧python小课学了有用吗-这个神仙技能,让你为所欲为!速来 !