Sdoi2013 保護出題人 三分 單調棧

2021-08-19 03:33:47 字數 1026 閱讀 9754

description

題意好長啊,自己去看吧。。。

sample input

5 2

3 3

1 1

10 8

4 8

2 3sample output

7設a的字首和為s

這道題首先可以推出乙個式子,第i位答案為:max((s[i]-s[j-1])/(d[i]+d*(i-j))。

然後能拿60分。。。

然後維護乙個下凸包,然後滿足三分性。

然後我就去學三分了,其實挺水的。

首先答案呈乙個二次函式,你每次將區間弄乙個mid1,mid2,表示區間的三等分點。

考慮ans[mid1] < ans[mid2],說明答案肯定在mid1的右邊,此時l=mid1即可。

反之相同。

#include 

#include

using

namespace

std;

double _max(double x, double y)

int tp;

double a[110000], d[110000], s[110000], sta1[110000], sta2[110000];

double dd;

double get(int x, int y)

bool check(double x1, double y1, double x2, double y2, double x, double y)

int main()

double sum = 0;

for(int i = 1; i <= n; i++)

double ans = 0.0;

for(int j = l; j <= r; j++) ans = _max(ans, get(i, j));

sum += ans;

}printf("%.0lf", sum);

return

0;}

SDOI2013 保護出題人

出題人銘銘認為給sdoi2012 出題太可怕了,因為總要被罵,於是他又給sdoi2013 出題了。參加sdoi2012 的小朋友們釋放出大量的殭屍,企圖攻擊銘銘的家。而你作為sdoi2013的參賽者,你需要保護出題人銘銘。殭屍從唯一一條筆直道路接近,你們需要在銘銘的房門前放置植物攻擊殭屍,避免殭屍碰...

SDOI2013 保護出題人

點此看題 感覺這道題網上講解不是特別清楚,我來補一發詳細講解吧,因為作者也是花了好久才搞懂。首先把題目所求轉化成形式化表達 其中s ss是生命值a aa的字首和 i 1nmax j 1is i s j 1 x i i j d sum n max i frac i 1 n j 1maxi x i i ...

SDOI2013 BZOJ3203 保護出題人

description input 第一行兩個空格隔開的正整數n和d,分別表示關數和相鄰殭屍間的距離。接下來n行每行兩個空格隔開的正整數,第i 1行為ai和 xi,分別表示相比上一關在殭屍佇列排頭增加血量為ai 點的殭屍,排頭殭屍從距離房子xi公尺處開始接近。output 乙個數,n關植物攻擊力的最...