リンク:https
://ac.nowcoder.com/acm/contest/5086/Bソース:Niuke.com
制限時間:C / C ++ 1秒、2秒言語、他の
スペースの制限:65536kもC / C ++ 32768K、他の言語
フォーマットIOを64:LLDの%
スペースの制限:65536kもC / C ++ 32768K、他の言語
フォーマットIOを64:LLDの%
タイトルの説明
Meituanの配達スタッフは、可変速ランニングによってボディトレーニングを行います。
彼らが訓練する方法は次のとおりです。n人が連続して走り、それらの間の距離はuメートルであり、各人の通常の速度はvメートル/秒です。
配達人が最後にいるとき、彼はその人の頭を超えるまでその時点で最高速度で前進する必要がありますuメートル、その後元の速度vメートル/秒に戻ります。
彼らが訓練する方法は次のとおりです。n人が連続して走り、それらの間の距離はuメートルであり、各人の通常の速度はvメートル/秒です。
配達人が最後にいるとき、彼はその人の頭を超えるまでその時点で最高速度で前進する必要がありますuメートル、その後元の速度vメートル/秒に戻ります。
各人の初期最大速度はc [i] m / sであり、各ラウンドはd [i] m / sで減衰します。つまり、iがj番目のランナーである場合、彼の速度はc [i]-( j-1)* d [i]メートル毎秒。
n人の個体は最初にランダムな順序で配置され、各順序の確率は完全に等しくなります。ラウンドを完了するために予想される時間はどのくらいですか(各人が最初の行を追跡し、シーケンスが復元されます)?
n人の個体は最初にランダムな順序で配置され、各順序の確率は完全に等しくなります。ラウンドを完了するために予想される時間はどのくらいですか(各人が最初の行を追跡し、シーケンスが復元されます)?
説明を入力してください:
1行目の整数n(<= 1000)、実数v(<= 100)、実数u(<= 10)
2行目の各人の速度n実数c [i](<= 50000)
各個人の減衰d [i](<= 10)のn個の実数値の3行目
データを入力して、全員の速度が<= vに減衰しないようにします
出力の説明:
答えは小数点以下3桁を保持します。
入力
10 37.618 0.422 72.865 126.767 202.680 106.102 99.516 134.418 167.952 173.646 120.210 136.571 2.941 3.664 7.363 4.161 0.246 8.046 5.521 7.473 7.178 5.649
アウトプット
0.815
望ましい加法性に従って、問題はすべての人々の予想時間の合計に変換できます。
各位置の各人の確率は1 / nでなければならないため、各位置の各人に必要な時間を計算して累積し、最後にnで割ります。
1 #include <bits / stdc ++。h> 2 typedef long long LL; 3 #define pb push_back 4 const int INF = 0x3f3f3f3f ; 5 const double eps = 1e- 8 ; 6 const int mod = 1e9 + 7 ; 7 const int maxn = 1e5 + 10 ; 8 名前空間std を使用 。 9 10 double c [ 1005 ]; 11 ダブル d [ 1005 ]; 12 13 int main() 14 { 15 #ifdef DEBUG 16 freopen(" sample.txt "、" r "、stdin); // freopen( "data.out"、 "w"、stdout); 17 #endif 18 19 int n; 20 ダブルv、u; 21 scanf(" %d%lf%lf "、&n、&v、&u); 22 for(int i = 1 ; i <= n;" %lf "、&c [i]); 24 for(int i = 1 ; i <= n; i ++ ) 25 scanf(" %lf "、&d [i]); 26 double ans = 0.0 ; 27 for(int i = 1 ; i <= n; i ++ ) 28 { 29 for(int j = 1 ; j <= n; j ++ ) 30 { 31 ans + = u /(c [i]-(j- 1) * d [i] -v); 32 } 33 } 34 printf(" %.3f \ n " 、ans); 35 36は 0を返し ます。 37 }
-