QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#206436#5505. Great ChasedkdkAC ✓1398ms21732kbC++201.7kb2023-10-07 20:30:172023-10-07 20:30:18

Judging History

你现在查看的是最新测评结果

  • [2023-10-07 20:30:18]
  • 评测
  • 测评结果:AC
  • 用时:1398ms
  • 内存:21732kb
  • [2023-10-07 20:30:17]
  • 提交

answer

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <map>
#include <queue>
#include <stack>
#include <deque>
#include <cmath>
#include <string>
#include <set>
#include <iomanip>
#define ft first
#define sd second
#define endl '\n'
#define lowbit(x) (x & (-x))
using namespace std;
using LL = long long;
using ULL = unsigned long long;
using PII = pair<int, int>;
using PDI = pair<double, int>;
using i128 = __int128;
const double eps = 1e-9;
const int N = 1010, mod = 998244353, INF = 2147483647;
int dx[4] = {-1, 1, 0, 0}, dy[4] = {0, 0, -1, 1};

int n;
double v;
vector<PDI> a, b;

bool check(double t)
{
    double xa = -1e18, xb = 1e18;
    for(auto o : a)
    {
        double p = o.ft, v = o.sd;
        xa = max(xa, p + v * t);
    }
    for(auto o : b)
    {
        double p = o.ft, v = o.sd;
        xb = min(xb, p - v * t);
    }

    if(xa > xb)return true;
    else return false;
}

void solve()
{
    cin >> n >> v;
    a.clear(), b.clear();
    for(int i = 0; i < n ; i++)
    {
        double x, y;
        cin >> x >> y;
        if(x < 0)a.push_back({x, y});
        else b.push_back({x, y});
    }

    double l = 0, r = 1e12;
    for(int i = 0; i < 800 ; i++)
    {
        double mid = (l + r) / 2;
        if(check(mid))r = mid;
        else l = mid;
    }

    //cout << l << ' ' << r << ' ' << eps << endl;
    cout << l * v << endl;
}

signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    int t = 1;
    cin >> t;
    cout << setprecision(20);
    while(t -- )solve();
    return 0;
}
/*
3
4 9
10 2
-7 2
-6 1
7 1
2 8
-1 7
1 6
2 3
-1000000000000 1
1000000000000 1
*/

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3872kb

input:

3
4 9
10 2
-7 2
-6 1
7 1
2 8
-1 7
1 6
2 3
-1000000000000 1
1000000000000 1

output:

38.25
1.2307692307692306155
3000000000000

result:

ok 3 numbers

Test #2:

score: 0
Accepted
time: 1222ms
memory: 3888kb

input:

10000
200 997007
405524182320 754760
686939601648 419804
687047488212 715566
1446157132 4594
-670522037 4673
763634629282 253755
424307411732 275041
1582708381 8473
-667425982 4622
-522841486 1427
702430907988 460271
1405423646 1060
1497754648 6227
883363410675 723547
56899800372 46435
-810216390 64...

output:

145405766328.34909058
16414958969.727277756
5202715639.8351831436
321977234.15632587671
45384199210.221679688
183885744.76923075318
1708925225.2304723263
89786664971.557937622
13924365606.287387848
412975327.55555552244
965508404.51210141182
4703493416.2883758545
352961619.38104385138
5575125771.798...

result:

ok 10000 numbers

Test #3:

score: 0
Accepted
time: 1283ms
memory: 4060kb

input:

93
15435 968117
4196666 184
-5069875 255
-9782648 980
-1978138 176
9333323 764
-4323540 12
-8442049 319
-5371878 137
2881306 10
-4050629 133
-4659099 59
-5189169 320
-2256647 99
-3686648 37
1059255 33
-223142 20
8040933 408
8407764 705
694547 38
-7913614 746
-3573355 132
5919585 189
-3756662 94
-795...

output:

189662921.36363637447
197971181.33333331347
997533531.73762953281
6439673170.6657419205
993821598110.66088867
22727977326.40266037
34702455207.518501282
677770533.92981743813
46631726883.96913147
5446481867.129032135
11336247450.27207756
4409370840.4391317368
15681606050.576286316
14986614231.546859...

result:

ok 93 numbers

Test #4:

score: 0
Accepted
time: 1398ms
memory: 21732kb

input:

5
400000 999972
172811492468 106699
171900177092 102097
194121748377 184014
190302947556 172722
183121572232 149212
196566712700 190884
171376795991 99358
522927044000 159597
-129031052077 34395
189422320931 170012
-275879974024 638546
408864707565 98475
-106703244806 368801
192128798630 178213
2915...

output:

519985220219.81170654
511413015796.76647949
424240880533.6340332
518849481155.50390625
1882496988186.4440918

result:

ok 5 numbers

Test #5:

score: 0
Accepted
time: 1372ms
memory: 6796kb

input:

38
16668 999947
-3844782803 511
-210897941456 464872
618726004990 714384
-954596898686 225256
96675744 1148
-1515974078 11375
-206213840984 706184
306078847 3947
-474818331950 391451
-616022698917 561244
123378707 1540
-640636592655 406006
459201391325 908506
-733249583 5719
496163273 6238
619876911...

output:

89670748252.978591919
98630840901.507598877
29393530999.894321442
50801000770.955978394
39668001027.269325256
467846478226.41137695
30789914370.574310303
23151476830.905094147
51606123416.625823975
151713060001.66256714
100944679009.60928345
766785664078.35900879
39969642788.06186676
62341065938.360...

result:

ok 38 numbers