P2085 最小函数值 堆
题目描述
有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<bits/stdc++.h> using namespace std; //input by bxd #define rep(i,a,b) for(int i=(a);i<=(b);i++) #define repp(i,a,b) for(int i=(a);i>=(b);--i) #define RI(n) scanf("%d",&(n)) #define RII(n,m) scanf("%d%d",&n,&m) #define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k) #define RS(s) scanf("%s",s); #define ll long long #define pb push_back #define REP(i,N) for(int i=0;i<(N);i++) #define CLR(A,v) memset(A,v,sizeof A) // #define inf 0x3f3f3f3f const int N=100000+5; int a[N]; int b[N]; int heap[N]; int from[N]; int now[N]; struct node {int a,b,c;int now;int v;bool operator< (const node & b)const{return v>b.v;} }s[N];int main() {priority_queue<node>q;int n,m;RII(n,m);rep(i,1,n)RIII(s[i].a,s[i].b,s[i].c),s[i].now=0;rep(i,1,n){s[i].now++;int x=s[i].now;s[i].v=s[i].a*x*x+s[i].b*x+s[i].c;q.push(s[i]);}int cnt=1;node head;int last;while(cnt<=m){head=q.top();q.pop();printf("%d ",head.v);int x=++head.now;head.v=( head.a*x*x+head.b*x+head.c);q.push(head);cnt++;}return 0; }
View Code
转载于:https://www.cnblogs.com/bxd123/p/10804445.html
P2085 最小函数值 堆相关推荐
- 洛谷 一种堆套路 P1631序列合并、P2085最小函数值
题目链接 序列合并 最小函数值 题解 这两道题做法基本一样,是使用同一种套路解决的,这里用序列合并来举例说明. 序列合并要求出N2N2N^2个和中最小的N个数. 我们用一个堆来维护我们需要的数,并且保 ...
- P2085 最小函数值(优先队列 分组法运用)
最小函数值 题目描述 有 nnn 个函数,分别为 F1,F2,-,FnF_1,F_2,\dots,F_nF1,F2,-,Fn.定义 Fi(x)=Aix2+Bix+Ci(x∈N∗)F_i(x)=A ...
- [优先队列] 洛谷 P2085 最小函数值
题目描述 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Ai*x^2+Bi*x+Ci (x∈N*).给定这些Ai.Bi和Ci,请求出所有函数的所有函数值中最小的m个(如有重复的要输出多个 ...
- 【洛谷 P2085】最小函数值【堆】
解题思路 所以我们建一个大根堆,存最小的数到第m小的数,第m小的数就理所当然的是堆顶了. 每次我们只需要比较新加进来的数比堆顶大还是比堆顶小. 如果比堆顶小,将原来的堆顶丢掉,将新的数塞进去: 如若比 ...
- 【Luogu2085】最小函数值(优先队列)
problem 给定n个二次函数(ai,bi,ci > 0) 求前m小的fi(x)值,x>0 n, m < 1e4. solution 因为都大于0了,所以全都是单增的..x=1 时 ...
- 1370:最小函数值(minval)
[题目描述] 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Aix2+Bix+Ci(x∈N∗).给定这些Ai.Bi和Ci,请求出所有函数的所有函数值中最小的m个(如有重复的要输出多个). ...
- [Leetcode][第632题][JAVA][最小区间][堆][滑动窗口]
[问题描述][困难] [解答思路] 1. 堆 复杂度 class Solution {public int[] smallestRange(List<List<Integer>> ...
- 最小函数值(信息学奥赛一本通-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个(如有重复的要输出多个). [输入格式 ...
最新文章
- UIActionSheet在iOS8中被弃用造成的错误
- bash shell的一些基本概念
- WSAIoctl 函数详解
- 获取本机IP_考虑多网卡的情况
- 神经网络- receptive field
- PHP3.2.3 where or,WHERE · ThinkPHP3.2.3完全开发手册 · 看云
- 关于ireport制作报表模版时的一些注意
- 怎样让电脑速度变快_电脑常用软件推荐
- 阿里云服务器新手选型指南
- python学习第二十三节(反射以及小工具)
- MySQL的Grant命令[转]
- 基于matlab的不规则面积图像测量,基于matlab的不规则面积图像测量.doc
- centos 8 配置yum源并安装开发工具包
- 百度地图点聚合,加载1万个marker
- 比较好的论坛(个人认为)
- 目标高盛,卡方科技用智能金融科技撬动国内量化投资
- 使超星数字图书馆的PDG文件转换为PDF文件的方法
- DTL相关知识整理初稿
- 体验管理,猪飞不起来的风口
- linux使用man守护进程,man手册的使用
热门文章
- vs需要迁移_这可能是目前最全面的无服务器迁移实践
- 仿京东左侧菜单弹出html代码,相仿京东左侧菜单
- 【vue】安装新版本vue-cli:@vue/cli
- javacript 裁切图片
- linux中截断日志
- git reset --hanrd撤回_一篇文章,全面掌握Git
- 遍历所有点的最短路径python_所有节点最短路径
- 服务器文件上传记录,记录一下上传文件(图片)的过程上传图片到ftp服务器
- oracle 查看并行数据库,Oracle数据库并行查询出错的解决方法
- centos7.5 使用报错:用户名 不在 sudoers文件中,此事将被报告。