思路:先考慮在d高度的最小圓覆蓋,再一層一層往下走時,可以保證圓心與最開始的圓相同的時候答案是最優的。
時間複雜度o(n)
有乙個坑點,就是我用了srand(time(null))就t了,rp太差了。。
#include#include#include
#include
#include
#include
const
double eps=1e-8
;const
double inf=1e60;
const
double pi=acos(-1
);struct
point
point(
double x0,double
y0):x(x0),y(y0){}
}p[500005
],o;
struct
line
line(point s0,point e0):s(s0),e(e0){}
};point
operator -(point p1,point p2)
point
operator +(point p1,point p2)
point
operator *(point p,double
x)point
operator /(point p,double
x)double
operator *(point p1,point p2)
double sqr(double
x)double
dis(point p1)
double
dis(point p1,point p2)
intn;
double cost[500005
],d,r;
inth;
intread()
while ('0'
<=ch&&ch<='9')
return t*f;
}point inter(line p1,line p2)
point turn(point p,
double
ang)
point calc(point p1,point p2,point p3)
intmain()
}}
double ans=inf,rr,xx,yy;
inthh;
h=std::min(h,dd);
for (int i=0;i<=h;i++)
}printf(
"%.10f\n
",ans);
printf(
"%.10f %.10f %d %.10f\n
",xx,yy,hh,rr);
}
XJOI網上同步訓練DAY3 T1
思路 看來我真是思博了,這麼簡單的題目居然沒想到,而且我對複雜度的判定也有點問題。首先我們選了乙個位置i的b,那一定只對i和以後的位置造成改變,因此我們可以這樣看 我們從前往後選,發現乙個位置的s和r相等,然後我們就選這個位置的bi,由於bi會改變當前位置,因此當前位置的vi我們就能吃到了。所以,每...
XJOI網上同步訓練DAY1 T3
思路 一開始看到這題的時候想dp,可是發現貌似不行。因為有字首也有字尾,而且有的字尾會覆蓋到現在的字首,這就不滿足無後效性了啊!但是有個很巧妙的思路 如果我們知道a i 的最大值,那麼p的數量和q的數量也確定了。所以序列長度也確定了,設m為序列長度。而且對於每個a i 都代表了乙個固定數量的p和q和...
效能測試培訓day1
測試本質 1構造測試資料和期望結果 2執行 3驗證 自動化測試 寫完 單元測試測 邏輯,單元測試搞清楚 邏輯就行了 白盒測試 先靜態,執行前用工具掃瞄bug例如 a 11寫成a 11 再動態,程式執行起來測試,用單元測試框架 unittest等 整合測試,兩個函式,兩個子系統,兩個介面。粒度可大可小...