雜題集萃 1

2022-06-03 06:39:08 字數 1127 閱讀 8239

給出 \(n\) 個形如 \(f_i(x)=a_ix^2+b_i\) 的二次函式。

有 \(q\) 次詢問,每次給出乙個 \(x\),詢問 \(max(f_i(x))\)

。第一行兩個整數 \(n\),\(q\)。

接下來的 \(n\) 行,每行兩個整數 \(a_i\),\(b_i\)。

接下來的 \(q\) 行,每行乙個整數 \(x\)。

對於每個詢問,輸出一行乙個整數表示答案。

input

2 4

3 04 -2-10

12

output
603

12

每個測試點 \(10\) 分,共 \(10\) 個測試點:

對於所有的資料,有:

\(1≤n,q,|x_i|,|a_i|,|b_i|<32323\)。

時間限制:1s

這道題看似是資料結構,但可以離線處理。

當 \(x>0\) 時,要求 \(a_ix^2+b_ix\) 的最大值,只需要求出 \(a_ix+b_i\) 的最大值。

於是問題就轉化為了,給定一堆直線,求在某些點的最大值。

顯然答案一定在上凸殼上。

對於每組詢問,只要二分出它在上凸殼的哪個位置就行。

同樣的,當 \(x<0\) 時,答案在 \(a_ix+b_i\) 的下凸殼上,再寫乙個凸殼就行了。

時間複雜度 \(o((n+q)\log n)\)。

#include #define int long long

#define re register int

using namespace std;

inline void read(int &x)

const int n=5e5+10,m=32323;

int t,k[n],b[n],id[n],n,q,p[n],a1[m+1],a2[m+1];

inline int f(int x,int i)

inline int cmp(int x,int y)

for(re i=1,j=1;i<=m;++i)

for(re i=1,j=1;i<=m;++i)

return 0;

}

雜題集萃 4

可愛的zyb來到乙個售貨機前。售貨機裡有一共有 n n 10 5 個物品,每個物品有 a i 個。自然,還有 n 個購買按鈕。正常情況下,按下第 i 個按鈕,需要支付 c i 的錢,然後會跳出乙份物品 i 如果該物品賣完了,按下此按鈕無效但是,這台售貨機的電路連線出了點問題。第 i 個按鈕的 彈出電...

雜題 翻硬幣

問題 a 翻硬幣 時間限制 1 sec 記憶體限制 128 mb 題目描述 有乙個n行n列的棋盤,每個格仔上都有乙個硬幣,且n為偶數。每個硬幣要麼是正面朝上,要麼是反面朝上。每次操作你可以選定乙個格仔 x,y 然後將第x行和第y列的所有硬幣都翻面。求將所有硬幣都變成同乙個面最少需要的運算元。輸入 第...

雜題練習10 11

uva1428 樹狀陣列思博題,然鵝漏了l mid r的情況 我是不是該補腦了 include define ll long long define db double using namespace std const int maxn 100100 const int lim 100000 co...