P2085 最小函数值 洛谷
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个数应该输出到一行,用空格隔开。
输入输出样例
3 10
4 5 3
3 4 5
1 7 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 最小函数值 洛谷的更多相关文章
- 最小函数值 洛谷P2085
题目描述: 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Ai*x^2+Bi*x+Ci (x∈N*).给定这些Ai.Bi和Ci,请求出所有函数的所有函数值中最小的m个( ...
- 洛谷P2085 最小函数值(minval)
P2085 最小函数值(minval) 218通过 487提交 题目提供者该用户不存在 标签堆高级数据结构 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 暂时没有讨论 题目描述 有n个函数, ...
- P2085最小函数值(优先队列)
P2085 最小函数值(minval) 题目描述 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Ai*x^2+Bi*x+Ci (x∈N*).给定这些Ai.Bi和Ci,请求出所有函数的所有 ...
- 洛谷P2085最小函数值题解
题目 首先我们先分析一下题目范围,\(a,b,c\) 都是整数,因此我们可以得出它的函数值在\((0,+\infty )\)上是单调递增的,,然后我们可以根据函数的性质,将每个函数设置一个当前指向位置 ...
- [洛谷P2085]最小函数值
题目大意:有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Ai*x^2+Bi*x+Ci (x∈N*).给定这些Ai.Bi和Ci,要求出所有函数的所有函数值中最小的m个(如有重复的要输出多个 ...
- 洛谷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\),请求出所有函数的 ...
- 洛谷 P2085 最小函数值
目录 题目 思路 \(Code\) 题目 戳 思路 首先这些函数全部单带递增,因为\(a\),\(b\),\(c\)都是正整数. 我们将全部的函数的\(x\)为\(1\)时的函数值放入优先度列(小根堆 ...
- P2085 最小函数值(minval)
题目描述 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Aix^2+Bix+Ci (x∈N*).给定这些Ai.Bi和Ci,请求出所有函数的所有函数值中最小的m个(如有重复的要输出多个). ...
- P2085 最小函数值 (堆)
题目描述 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Aix^2+Bix+Ci (x∈N*).给定这些Ai.Bi和Ci,请求出所有函数的所有函数值中最小的m个(如有重复的要输出多个). ...
随机推荐
- POI导出excel项目(webwork)实例
后台action: public String exportExcel(){ this.setUserList(this.getUserService().findUserInfosByGroupID ...
- javascript 写一个随机范围整数的思路
const {random} = Math; //返回 [min,max] 的随机值 //[0,1) * (max - min + 1) => [0,max-min+1) //[0,max-mi ...
- VC++中char和TCHAR之间转换
char:计算机编程语言(c.c++.java等)中可容纳单个字符的一种基本数据类型. TCHAR:为了满足Unicode编码,对char的扩展,即_T(“str”)表示TCHAR类型 C++支持两种 ...
- (转)python之禅
凡是用过 Python的人,基本上都知道在交互式解释器中输入 import this 就会显示 Tim Peters 的 The Zen of Python,但它那偈语般的语句有点令人费解,所以我想分 ...
- spring-cloud-sleuth 学习资源
https://www.baeldung.com/spring-cloud-sleuth-single-application https://howtodoinjava.com/spring-clo ...
- IntelliJ IDEA 类和方法注释的生成以及Javadoc的简单使用记录
idea,设置类注释和,方法注释的常见的设置方法(不同的版本设置方法有所偏差,简单记录一些目前自己在使用的方法,) 方法注释:在keyMap中搜索Fix doc comment ,后点击右键设置一个快 ...
- Mysql 学习目录
Mysql 目录 Mysql之路[第一篇]:Mysql基础 Mysql之路[第二篇]:Mysql 常用命令 Mysql之路[第三篇]:Python对Mysql的操作 Mysql之路[第四篇]:ORM ...
- luogu2146 [NOI2015]软件包管理器
安装就把根节点到它全设为 1 删除就把以它为根的子树全设为 0 记得标记初始化为-1,因为标记是 0 的情况也是要处理的. #include <iostream> #include < ...
- Wp 导航到手机定位设置页面
WP开放了很多选择器和启动器,找了半天没发现有打开定位设置页面的,找了好久终于找到了解决办法: await Windows.System.Launcher.LaunchUriAsync(new Uri ...
- ORA-02437 违反主键
在给study用户下的semp表建立主键的时候,出现以下错误:SQL> alter table semp add constraint pk_emp primary key(empno);alt ...