題目描述
有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
出題人善意地把二次函式的對稱軸都放在了y軸左側,所以所有的函式都是單調遞增,維護乙個小根堆,即可。
#include
#include
#include
using
namespace
std;
int n,m,a[10001],b[10001],c[10001];
struct data
w[10001],tmp;
bool
operator
< (const data &c,const data &d)
priority_queueq;
int f(int i,int x)
int main()
while(m--)
printf("\n");
return
0;}
洛谷 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...
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...
洛谷P2085 最小函式值
題目大意 有n個函式,分別為f1,f2,fn。定義fi x ai x 2 bi x ci x n 給定這些ai bi和ci,要求出所有函式的所有函式值中最小的m個 如有重複的要輸出多個 解題思路 因為 n,m leq 10000 暴力列舉肯定是不可取的。我們發現,fi x 一定不會大於fi x 1 ...