洛谷 P2085 最小函数值(minval)
来源:互联网 发布:优化发展环境心得公安 编辑:程序博客网 时间:2024/06/05 02:04
题目描述
有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 104 5 33 4 51 7 1
输出样例#1:
9 12 12 19 25 29 31 44 45 54
说明
数据规模:n,m<=10000
【分析】
对于一道为数不多的一次AC的题,我有必要发一个简单而清晰的题解。(其实我是来装b的【滑稽】)
由于这道题中函数的对称轴是在y轴左侧(即对称轴横坐标为负),所以在正整数范围内啊它是单调递增哒。这就很好办啦
我们首先用第一组数据(即第二行的数据)建一个有m个数的大根堆。然后往里面加其他数据的数。
我觉得讲的挺清楚的了吧。。那就贴个C++代码
//P2085 最小函数值(minval)#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define fo(i,j,k) for(i=j;i<=k;i++)using namespace std;int h[10002];int size=0,n,m; //size就是堆中数字的个数void put(int f){ int now,next; h[++size]=f; if(size>m) //这个是加数字的情况 { h[1]=h[size--]; now=1; while(2*now<=m) { next=2*now; if(next<=m-1&&h[next+1]>h[next]) next++; if(h[now]>=h[next]) return; swap(h[now],h[next]); //三变量交换法 now=next; } } else //这个是建立初始堆 { now=size; while(now/2>=1) { next=now/2; if(h[next]>=h[now]) return; swap(h[next],h[now]); now=next; } }}int main(){ int i,j,k,a,b,c,f,x; scanf("%d%d",&n,&m); n--; scanf("%d%d%d",&a,&b,&c); fo(x,1,m) //建堆 { f=a*x*x+b*x+c; put(f); } while(n--) { scanf("%d%d%d",&a,&b,&c); fo(x,1,m) { f=a*x*x+b*x+c; if(f>=h[1]) break; //如果这个数比堆中最大的数还大,那么就看下一组数据了 put(f); //添加数字 } } sort(h+1,h+m+1); fo(i,1,m) printf("%d ",h[i]); return 0;}
1 0
- 洛谷 P2085 最小函数值(minval)
- 洛谷 P2085 最小函数值(minval)
- 洛谷 P2085 最小函数值(minval)
- 洛谷 P2085 最小函数值(minval)
- 洛谷 P2085 最小函数值(minval)
- 洛谷 P2085 最小函数值
- 最小函数值(minval)
- LUOGU P2085 最小函数值
- 洛谷P2085最小函数值STL模板解题报告
- 洛谷2085最小函数值(minval) + 洛谷1631序列合并
- [luogu]P2085最小函数值-堆排的玄学运用
- 洛谷2085 最小函数值
- 8.2 minval
- 洛谷 堆专题 最小函数值
- 最小函数值 洛谷2085 堆
- 【堆】最小函数值
- 【堆】最小函数值
- 最小函数值
- 含SQLSTATE mysql错误代码汇总大全
- Centos 下设置各种代理上网
- QT读取配置文件
- Git学习总结(5)——搭建Git简易高效服务器
- OpenCV的Rect矩形类用法
- 洛谷 P2085 最小函数值(minval)
- error LNK2001: 无法解析的外部符号 _WindowsDeleteString@4、_WindowsCreateStringReference@16、 __imp__RoGetActiva
- spring hibernate框架问题
- 数据结构_P2
- Beyond Compare比较图片的优点有哪些
- Windows安装和使用zookeeper
- 30学习写论坛-8
- Java 对象释放与 finalize 方法
- Java传值