CF 8D Two Friends 三分 二分

2022-04-04 09:29:13 字數 1166 閱讀 3110

題意 :有三個點,p0,p1,p2。有兩個人alice,bob,他們初始位置為p0,現在 alice需要先到p2再到p1,bob是直接到p1。設計一條線路,使得他們初始一起走的路程盡可能地長(之後相遇不算)。要求alice走的路程和最短路之差不超過t1,bob不超過t2。

題目看的一頭霧水。

可以證明出最優的分離點肯定是在p0,p1,p2組成的三角形之間。

因此可以求出p0出發的角度,一旦角度確定,能走的最遠路程可以通過二分求得。

同時發現當角度左右偏離,那麼都只會有利於某一方,所以三分角度,二分距離。

角度可以三分p1,p2上的點。

另外還要注意一些特殊情況,如bob先到p2再到p1。沿著p1,p2行走等情況。

#include #include #include #include #include #include #include #include #include #include #define lson step<<1

#define rson step<<1|1

#define mem(a,b) memset(a,b,sizeof(a))

#define pb(a) push_back(a)

#define mp(a,b) make_pair(a,b)

#define pii pairusing namespace std;

typedef long long ll;

struct point

point(double _x,double _y):x(_x),y(_y){}

void input()

}p0,p1,p2;

double t1,t2;

double sqr(double a)

double dist(point p1,point p2)

// s->e , p at the line of s->m , s->p + p->e <= t + s->e

double solve(point s,point e,point m,double t)

return mid*dist(s,m);

}int main()

for(int step=1;step<=1000;step++)

printf("%.10f\n",ans);

return 0;

}

CF 8D Two Friends 二分 三分

三個地點構成乙個三角形。判斷一下兩個人能否一起到shop然後回家,如果不能 兩個人一定在三角形內部某一點分開,假設沿著直線走,可以將問題簡化。三分從電影院出來時候的角度,在對應的直線上二分出乙個分離點即可。注意 精度。include include include include include u...

雪mm「帶」CF世界冠軍8排吃雞!

摘要 月 號絕地官方正式服更新了 排新玩法,人乙個小隊的活動模式這也是近期各種 幾乎毫無用處 的 反外掛程式機制 之後一次程式設計客棧有實際變化的更新。人小隊的模式在真正玩起來的時候究竟又有怎樣的不同呢?近日鬥魚主播妃凌雪 雪 就體驗了幾把,一起 排的還有兩個隊友。雪 的開黑隊友三個人,乙個是菊花,...

cf 8vc D 用陣列儲存以及字首和的應用

概率題首先把公式寫下,知道要算什麼 然後就是要找兩個a b,得到有多少ai bi能大於這兩個的和,利用a的範圍,用陣列儲存,然後就可以直接查詢,不要用二分了,然後再求個字首和,就能amax 2算出 還是沒好好利用條件啊,對於小的數字可以直接放到陣列裡直接查詢 順便要注意相乘的時候可能會超出int的範...