題目描述
wls有n個二次函式fi(x)=aix2+bix+ci(1≤i≤n)。
現在他想在
且x為正整數的條件下求
的最小值。
請求出這個最小值。
輸入第一行兩個正整數n,m。
下面n行,每行三個整數a,b,c分別代表二次函式的二次項,一次項,常數項係數。
1≤n≤m≤100,000
1≤a≤1,000
−1,000≤b,c≤1,000
輸出一行乙個整數表示答案。
2 3樣例輸出1 1 1
2 2 2
13每次先把m當成每乙份,然後先給n個,剩餘的m-n就給當前增長多的那個即可.
【隊友的**】
1view code#pragma gcc optimize(2)
2 #include3
using
namespace
std;
4 typedef long
long
ll;5
6struct
node
13};
14 priority_queueq;
15int
main()
1629
for(int i=1;i<=m-n;i++)
3039 ll ans = 0;40
while(!q.empty())
4146 printf("
%lld\n
",ans);
4748
49return0;
50 }
Function (思維 優先佇列)
解題思路 因為 x 是正整數,所以每個 fi 都必須先分配 xi 1。這時候還剩下 m n 個 1 沒有分配,採用貪心原則。首先需要先知道對於每一次分配的1,產生的增量為 所以我們每次都取最小的增量,最後即為最小的增量。這就用到了優先佇列 ac code 1 include 2 include 3 ...
優先佇列(3道優先佇列問題)
優先佇列是一種十分強大的資料結構,它保持了一種動態的有序性,對於不斷改變有入隊的操作,而又需要某種最大或最小的操作的問題是再合適不過了,通常優先佇列的實現是由最小堆或者最大堆完成的,並通過堆排序保持佇列的有序性,模擬佇列的結構,在實際比賽中要寫乙個堆排序還是要一定的時間的,但是stl中queue容器...
佇列以及優先佇列
1.佇列 佇列的定義 標頭檔案 include 佇列是一種先進先出的資料結構 佇列的宣告 queueq 宣告字元型別 queueq 宣告結構體型別 以及可以宣告一些自定義的型別 佇列的操作 入佇列 s.push x 出佇列 s.pop 返回佇列的資料數量 s.size 判斷佇列是否為空 s.empt...