2019多校第一場 Vacation(思維二分)

2021-09-25 15:11:08 字數 1456 閱讀 7632

題意:現在有n+1

n+1n+

1輛車在一條路上跑,每個車有個長度l[i

]l[i]

l[i]

,速度v[i

]v[i]

v[i]

,車頭與終點的距離s[i

]s[i]

s[i]

,後面的車不能超過前面的車,車開過終點之後繼續開,問最後一輛車車頭到達終點的時間。

解題心得:很多人推不出樣例,這是因為車在開過終點之後繼續開,也就是說車在開過終點之後仍然可能造成堵車。其實二分一下時間就可以了,二分時間看一下最後一輛車是否駛離了終點,檢驗的時候要注意當前車不論多快只能開到前一輛車的屁股上。比賽的時候用了lon

gdou

bl

elong\ double

longdo

uble

結果hdoj不能用lon

gdou

bl

elong\ double

longdo

uble

,錯了半天不知道為啥真的難受。杜老師在講題的時候似乎講了乙個更快跟簡單的方法,當時沒注意聽。

#include

#define fi first

#define se second

using namespace std;

typedef

long

long ll;

typedef

unsigned

long

long ull;

const

int maxn =

2e6+5;

const

int mod =

1e9+7;

const

double eps =

1e-9

;double l[maxn]

, s[maxn]

, v[maxn]

;int n;

intcmp

(double x)

bool check

(double t)if(

cmp(dis - dis + l[i +1]

)>0)

else

}return

cmp(dis -0)

>=0;

}int

main()

for(

int i =

0; i <= n; i++

)scanf

("%lf"

,&v[i]);

double l =

0, r =

1e9+1;

for(

int cnt =

0; cnt <=

100; cnt++

)printf

("%.10f\n"

, r);}

return0;

}

2019杭電多校第一場

dp i j k t dp i j k t dp i j k t 表示0 1 2,3 0,1,2,3 0,1,2,3出現的位置排序後為i,j k,t i,j,k,t i,j,k,t的方案數 列舉第t 1 t 1t 1位的情況進行轉移 對於限制情況,固定右端點,暴力列舉所有狀態,把所有非法狀態清零 i...

2019 杭電多校(第一場)

題目 1002 operation 線性基 題意給你n個數 兩個操作,查詢l r區間異或最大值 在陣列最後麵加一數 思路維護兩個陣列 1 b i j 儲存a 1 到a i 之間的第j位線性基。2 pos i j 儲存最大的l a l 使得b i j 有值。對於每一次詢問 l,r 如果pos r j ...

2019杭電多校第一場

從右到左分別為0 n輛車,每輛車有長度l,起始位置s和速度v,0座標在左邊,不能超車,單車道,問0號車到達0座標的最短時間。最短時間考慮二分時間,然後按這個時間從左邊第一輛車開始依次計算最終位置,最後判斷0號車的位置即可。include using namespace std const int n...