题目描述

有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

题解

  • 这题的思想和上一题的思想差不多

代码

 1 #include<bits/stdc++.h>
 2 #define N 100010
 3 using namespace std;
 4 struct node{ int num,d,v;}k;
 5 priority_queue<node,vector<node>,less<node> >Q;
 6 bool operator <(node a,node b) {return a.v>b.v;}
 7 int n,m,a[N],b[N],c[N];
 8 int main()
 9 {
10     scanf("%d%d",&n,&m);
11     for (int i=1;i<=n;i++) scanf("%d%d%d",&a[i],&b[i],&c[i]),Q.push((node){i,1,a[i]+b[i]+c[i]});
12     while (m--)    printf("%d ",Q.top().v),k=Q.top(),Q.pop(),Q.push((node){k.num,k.d+1,a[k.num]*(k.d+1)*(k.d+1)+b[k.num]*(k.d+1)+c[k.num]});
13 }

转载于:https://www.cnblogs.com/Comfortable/p/10328051.html

[优先队列] 洛谷 P2085 最小函数值相关推荐

  1. 洛谷P2085ssl1411OJ1370-最小函数值【堆,贪心】

    前言 有一个东西卡了我一会 折叠N*或N+ 正整数集 (由全体正整数组成的集合) N*:={1,2,3,-,n,-} 题目 洛谷P2085 OJ1370 给出n个ai,bi,ci.定义一个函数 fi( ...

  2. 洛谷4951 地震 bzoj1816扑克牌 洛谷3199最小圈 / 01分数规划

    洛谷4951 地震 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #define ...

  3. 信息学奥赛一本通 1344:【例4-4】最小花费 | 洛谷 P1576 最小花费

    [题目链接] ybt 1344:[例4-4]最小花费 洛谷 P1576 最小花费 [题目考点] 1. 图论 单源最短路径 时间复杂度: Dijkstra算法: O(V2)O(V^2)O(V2) Dij ...

  4. 洛谷 一种堆套路 P1631序列合并、P2085最小函数值

    题目链接 序列合并 最小函数值 题解 这两道题做法基本一样,是使用同一种套路解决的,这里用序列合并来举例说明. 序列合并要求出N2N2N^2个和中最小的N个数. 我们用一个堆来维护我们需要的数,并且保 ...

  5. P2085 最小函数值(优先队列 分组法运用)

    最小函数值 题目描述 有 nnn 个函数,分别为 F1,F2,-,FnF_1,F_2,\dots,F_nF1​,F2​,-,Fn​.定义 Fi(x)=Aix2+Bix+Ci(x∈N∗)F_i(x)=A ...

  6. 洛谷2085-最小函数值-python-(二叉堆)

    最近在学习dijkstra最短路算法,朴素算法的时间复杂度是O(N^2),也就是说当数据量达到1e5的时候,1S可能就不够了,因此我们需要对算法进行优化,如果能让时间复杂度变为O(NlogN)的话,一 ...

  7. 升序堆和降序堆(优先队列) 洛谷1801

    1 // 洛谷1801 2 // 一个升序堆,一个降序堆 3 // 降序堆维护序列的前i个最小值 4 // 插如元素的时候,如果x小于降序堆最大值,则替换,并将最大值插入升序堆:否则,直接插入升序堆 ...

  8. 【洛谷 P2085】最小函数值【堆】

    解题思路 所以我们建一个大根堆,存最小的数到第m小的数,第m小的数就理所当然的是堆顶了. 每次我们只需要比较新加进来的数比堆顶大还是比堆顶小. 如果比堆顶小,将原来的堆顶丢掉,将新的数塞进去: 如若比 ...

  9. P2085 最小函数值 堆

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

最新文章

  1. 程序员 专属的新年祝福原来是这样的! (附中奖名单)
  2. 把大脑「复制-粘贴」到芯片上,三星、哈佛的大胆设想登上Nature子刊
  3. springcloud feign 服务调用其他服务_springCloud微服务项目 构建公共的feign调用
  4. 【LeetCode】128. 最长连续序列
  5. 使用pscp命令将windows系统里的文件传送到远程服务器
  6. linux vue node占用内存过大,vue 大型应用内存泄漏改造经验
  7. 多个页面同时跳转到一个页面,然后返回到上级页面
  8. 在Python中执行while循环
  9. Java 并发编程:Synchronized 及其实现原理
  10. [论文阅读] Active Learning for Deep Object Detection via Probabilistic Modeling
  11. [Java] 蓝桥杯ALGO-64 算法训练 大小写判断
  12. Java-Collections的sort方法对 list 进行排序
  13. 概率论与数理统计(一):教你一步步推贝叶斯公式
  14. 网页设计与制作 项目教程 项目1
  15. wieshark导出ftp文件_【FTP】Wireshark学习FTP流程
  16. 网络:网络地址到虚拟地址的映射ARP
  17. Java 8 effectively final
  18. 华为交换机 STP MSTP BPDU保护 边缘端口 BPDU过滤 根保护 环路保护 TC保护
  19. 基于微信小程序奶茶店在线点单管理系统#毕业设计
  20. 用水流的概念来玩硬件(三)----LDO与DCDC电源电路

热门文章

  1. 最锋利的Visual Studio Web开发工具扩展:Web Essentials详解(转)
  2. [IoC容器Unity]第四回:使用范例
  3. Win2003 防木马、权限设置、IIS服务器安全配置整理
  4. 加入新e时代建站网后,我可以做什么
  5. 标签选择器用于修改html元素默认的样式,html – 为什么CSS选择器与 sign(直接子)覆盖默认样式?...
  6. 1126 Eulerian Path
  7. Python os库的使用
  8. 楷书书法规则_硬笔书法入门学习“三步法”,让练字不再难
  9. UI培训分享:UI设计师要掌握哪些知识点
  10. java培训要学习多久?