最小函数值(信息学奥赛一本通-T1370)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                最小函数值(信息学奥赛一本通-T1370)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                【題目描述】
有n個(gè)函數(shù),分別為F1,F2,...,Fn。定義Fi(x)=Aix2+Bix+Ci(x∈N?)。給定這些Ai、Bi和Ci,請(qǐng)求出所有函數(shù)的所有函數(shù)值中最小的m個(gè)(如有重復(fù)的要輸出多個(gè))。
【輸入】
第一行輸入兩個(gè)正整數(shù)n和m。
以下n行每行三個(gè)正整數(shù),其中第ii行的三個(gè)數(shù)分別位Ai、Bi和Ci。輸入數(shù)據(jù)保證Ai≤10,Bi≤100,Ci≤10000。
【輸出】
將這n個(gè)函數(shù)所有可以生成的函數(shù)值排序后的前m個(gè)元素。這m個(gè)數(shù)應(yīng)該輸出到一行,用空格隔開(kāi)。
【輸入樣例】
3 10
 4 5 3
 3 4 5
 1 7 1
【輸出樣例】
9 12 12 19 25 29 31 44 45 54
【源程序】
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<string> #include<cstdlib> #include<queue> #include<vector> #define INF 0x3f3f3f3f #define PI acos(-1.0) #define N 10001 #define MOD 123 #define E 1e-6 using namespace std; int a[N],b[N],c[N]; int f[N]; int main() {int n,m;cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i]>>b[i]>>c[i];f[i]=1;}int minn;for(int i=1;i<=m;i++){int temp=INF;for(int j=1;j<=n;j++){if(a[j]*f[j]*f[j]+b[j]*f[j]+c[j]<temp){temp=a[j]*f[j]*f[j]+b[j]*f[j]+c[j];minn=j;}}cout<<a[minn]*f[minn]*f[minn]+b[minn]*f[minn]+c[minn]<<" ";f[minn]++;}return 0; }?
總結(jié)
以上是生活随笔為你收集整理的最小函数值(信息学奥赛一本通-T1370)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: 常用技巧 —— 打表规律
- 下一篇: 找树根和孩子(信息学奥赛一本通-T133
