GDOI2013模擬1 屏保

2021-07-14 11:13:53 字數 1090 閱讀 4800

平面直角座標系內有n個點,第i個點的座標為(i,hi),順次連線這n個點。

現在給出一條直線y=h,求這條直線以下的由這條直線和其他線段圍成的圖形的面積。

茲瓷單點修改。

n<=10^5,hi<=1000

語文不好,放圖來講講道理。

左邊這張圖的答案是3.75,右圖為6.

考慮hi和hi+1所連的線段。 若h

i,那麼答案是(h

−hi)

22(h

i+1−

hi)

這是個二次多項式。那麼我們可以用樹狀陣列維護當h=x時的每一項的係數。 若h

i+1<=

h ,那麼答案是h−

hi+1

−hi2

。只有一次項和常數項,同樣可以做。

具體用樹狀陣列的實現,因為當h∈

[hi,

hi+1

] 的時候,它所形成的答案的多項式的係數都是一樣的,那麼就用樹狀陣列的「區間加法」就好了。

剩餘的同理。

#include
#include

#include

#define fo(i,a,b) for(int i=a;i<=b;i++)

#define n 100005

#define h 1005

using namespace std;

typedef double db;

db t[3][h];

int n,m,x,y,h[n];

char ch[1];

void add(int z,int

x,db y)

db find(int z,int

x) void calc(int

x,int

y,int f)

add(1,y+1,f);add(2,y+1,-f*(

x+y)*1.0/2);

}int main() else }}

GDOI2013模擬1 最短路

這題就是個暴力spfa。我們就從節點1開始更新,每次更新一圈。我們可以發現,每個完全子圖暴力掃過以後就不需要再掃了 因為不會再優 所以就可以過了 判一判是否掃過就可以了 這題有個重構圖的解法。就是對於每個完全子圖構建成乙個菊花圖,而邊權便是1 2,然後跑一遍spfa就可以了。include incl...

JZOJ3187 GDOI2013模擬8 的士

在乙個數軸上,有些人要從某個點到達另乙個點。計程車從最左端出發,將所有人送到它們的目的地,最終到達最右邊的點。計程車只能做乙個乘客,並且可以在圖中將乘客丟下。問最短時間。一看就覺得是神仙題,往dp方向思考,沒有一點點長進 壓根就沒有想過貪心 然而這題又沒得打暴力,於是一分都沒有拿。面對這種神仙題,為...

GDOI模擬4 24 4 26總結DAY1

day1 第一題,一看就知道是字尾陣列,不過忘記了字尾陣列有乙個東西怎麼線性處理,所以就只能夠暴力搞字尾陣列,所以也只能暴力搞字尾陣列,然後暴力的來求。把height從大到小填進去是乙個很套路的東西,但是只打過一次字尾陣列,對他的用法還不太熟練。所以對於很多省選的知識,由於打得不多,所以很多東西還不...