5049 腐女的生日

2021-07-30 12:02:35 字數 2148 閱讀 2780

給定

n 個平面座標系上的矩形,保證矩形不會相交且每個矩形周圍至少乙個單位不會有矩形,求從(0

,0)走到

(x0,

y0) 且不經過矩形內部的點的最短曼哈頓距離。

data constraint n≤

105,x

0>0

首先注意到,除了一種情況以外,其他情況都存在一種最優解不需要往右走,那麼

x 方向的代價是確定的,現在的問題是如何計算

y方向的代價。

考慮掃瞄線。用線段樹維護乙個函式,自變數是

y ,函式值就是從起點走到當前掃瞄線位置的縱座標為y,在

y 方向上的最小代價。

對於乙個矩形的右邊界,(x

,ly)

→(x,

ry),顯然我們需要修改

y 在[l

y,ry

]的函式值。可以二分出乙個位置

w ,滿足[l

y,w]

從ly−

1 走過來優,[w

+1,r

y]從ry+

1 時間複雜度:o(

nlog

n)

#include

#include

#include

#include

#include

using

namespace

std ;

#define n 100000 + 10

#define m 1000000 + 10

const

int minn = -1000001 ;

const

int maxn = 1000001 ;

struct note

} ;struct tree t[30*n] ;

struct line l[n] ;

int n , x0 , y0 ;

int cnt = 1 , root = 1 , ret ;

bool cmp( line a , line b )

int newnode()

void update( int v )

int div( int x )

void modify( int &v , int l , int r , int x , int y , note tag )

update(v) ;

int mid = div( l + r ) ;

if ( y <= mid ) modify( t[v].son[0] , l , mid , x , y , tag ) ;

else

if ( x > mid ) modify( t[v].son[1] , mid + 1 , r , x , y , tag ) ;

else

}void query( int v , int l , int r , int x )

update(v) ;

int mid = div( l + r ) ;

if ( x <= mid ) query( t[v].son[0] , l , mid , x ) ;

else query( t[v].son[1] , mid + 1 , r , x ) ;

}int main()

sort( l + 1 , l + n + 1 , cmp ) ;

modify( root , minn , maxn , 1 , maxn , note( 1 , 0 ) ) ;

modify( root , minn , maxn , minn , 0 , note( -1 , 0 ) ) ;

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

modify( root , minn , maxn , l[i].ly , w , note( 1 , cost1 - d ) ) ;

modify( root , minn , maxn , w + 1 , l[i].ry , note( -1 , cost2 + u ) ) ;

}ret = 0 ;

query( 1 , minn , maxn , y0 ) ;

printf( "%d\n" , x0 + ret ) ;

return

0 ;}

以上.

腐女的生日

腐女要過生日了,pty 想給腐女送禮物,但是腐女所在的教室離pty 的教室太遠了,於是pty就拜託會動歸和a星的djy幫忙送禮物。djy在學校建立了乙個平面直角座標系,他站在了 0,0 點,腐女在 x0,y0 點,djy每次只能往上下左右四個方向移動一步,中間有n棟矩形教學樓,每個教學樓給出兩個對角...

老爸的生日

今天是老爸的生日,剛才打了30多分鐘的 以前很多時候是發簡訊的,打 問了他最近的情況,一切都好,好像特別精神,肯定有乙個原因,那就是女兒也考上大學了 談了下我的工作學習問題 最後談了他的工作,他說想要換個工作,那邊的工資高些,我知道那是榆林 陝西的北部 那是個環境比較惡劣的地方,風沙大 以前去過一次...

爸爸的生日

前天是老爸 60歲生日 一直也沒有給爸爸過過生日 決定從今年開始給爸爸過生日 於是昨天就從北京請假趕了回來 還算是比較順利,昨晚 23 20 就回到了家中 爸爸愛喝茶 專門買了一斤龍井 也算是盡盡孝心吧。早晨起來,媽媽就張羅買蛋糕,什麼時候出去吃飯的事情?本來說好中午去飯店給爸爸過生日,但媽媽又給兩...