QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#804230 | #9869. Horizon Scanning | ucup-team1338# | AC ✓ | 399ms | 37188kb | C++20 | 3.1kb | 2024-12-07 21:08:49 | 2024-12-07 21:08:49 |
Judging History
answer
#include<bits/stdc++.h>
#define LL long long
#define len(G) (LL)(G).size()
#define all(G) (G).begin(),(G).end()
#define ar(n) array<LL,n>
using namespace std;
using i128=__int128;
using ar=array<LL,2>;
using Poly=vector<LL>;
mt19937_64 rnd(random_device{}());
constexpr LL N=2e5+9;
constexpr double eps=1e-10;
using numbers::pi;
LL n,K;
double t[N];
template<class T>
inline void read(T &x)
{
x=0;int w=1;char c=getchar();
while(!isdigit(c)){if(c=='-')w=-1; c=getchar();}
while(isdigit(c)){x=x*10+(c^'0'); c=getchar();}
if(w==-1) x=-x;
}
template<class T,class... Args>
inline void read(T &x,Args &...args)
{
read(x),read(args...);
}
double ang(double x,double y)
{
double t=atan2(y,x);
if(t<0) t+=2*pi;
return t;
}
// map<double,LL> mp;
vector<pair<double,LL>> G;
// void add(double l,double r)
// {
// // ++mp[l-eps];
// // --mp[r+eps];
// G.push_back({l-eps,1});
// G.push_back({r+eps,-1});
// }
void addl(auto &G,double l)
{
G.push_back({l-eps,1});
}
void addr(auto &G,double r)
{
G.push_back({r+eps,-1});
}
void f(auto &G,const auto &T)
{
assert(is_sorted(all(T)));
LL l=len(G);
G.insert(G.end(),all(T));
inplace_merge(G.begin(),G.begin()+l,G.end());
}
bool check(double a)
{
// mp.clear();
// mp[2*pi+eps]=0;
G.clear();
// G.reserve(n);
vector<pair<double,LL>> G1,G2,G3,G4,G5,G6;
for(LL i=1;i<=n;++i)
{
double l=t[i]-a/2,r=t[i]+a/2;
if(l<0)
{
addl(G1,0);
}
else if(r>2*pi)
{
addl(G1,0);
}
}
for(LL i=1;i<=n;++i)
{
double l=t[i]-a/2,r=t[i]+a/2;
if(l<0)
{
addl(G2,l+2*pi);
}
}
for(LL i=1;i<=n;++i)
{
double l=t[i]-a/2,r=t[i]+a/2;
if(l<0)
{
}
else if(r>2*pi)
{
addl(G3,l);
}
else
{
addl(G3,l);
}
}
for(LL i=1;i<=n;++i)
{
double l=t[i]-a/2,r=t[i]+a/2;
if(l<0)
{
addr(G4,2*pi);
}
else if(r>2*pi)
{
addr(G4,2*pi);
}
}
for(LL i=1;i<=n;++i)
{
double l=t[i]-a/2,r=t[i]+a/2;
if(l<0)
{
}
else if(r>2*pi)
{
addr(G5,r-2*pi);
}
}
for(LL i=1;i<=n;++i)
{
double l=t[i]-a/2,r=t[i]+a/2;
if(l<0)
{
addr(G6,r);
}
else if(r>2*pi)
{
}
else
{
addr(G6,r);
}
}
// for(LL i=1;i<=n;++i)
// {
// double l=t[i]-a/2,r=t[i]+a/2;
// if(l<0)
// {
// add(0,r);
// add(l+2*pi,2*pi);
// }
// else if(r>2*pi)
// {
// add(0,r-2*pi);
// add(l,2*pi);
// }
// else
// {
// add(l,r);
// }
// }
// sort(all(G));
f(G,G1);
f(G,G2);
f(G,G3);
f(G,G4);
f(G,G5);
f(G,G6);
G.push_back({2*pi+eps,0});
// if(mp.begin()->first>0) return 0;
// if(G.begin()->first>0) return 0;
LL cur=0;
for(auto [k,v]:G)
{
if(k>0&&cur<K) return 0;
if(k>2*pi) break;
cur+=v;
}
return 1;
}
void solve()
{
read(n,K);
for(LL i=1;i<=n;++i)
{
LL x,y;
read(x,y);
t[i]=ang(x,y);
}
sort(t+1,t+n+1);
double l=0,r=2*pi;
for(LL _=1;_<=40;++_)
{
double mid=(l+r)/2;
if(check(mid)) r=mid;
else l=mid;
}
printf("%.10lf\n",l);
}
int main()
{
LL T;
read(T);
while(T--) solve();
return 0;
}
这程序好像有点Bug,我给组数据试试?
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 4040kb
input:
5 1 1 0 1 8 2 1 0 1 1 0 1 -1 1 -1 0 -1 -1 0 -1 1 -1 4 2 -1 1 0 1 0 2 1 1 4 2 -1000000000 0 -998244353 1 998244353 1 1000000000 0 3 1 0 1 0 2 0 -1
output:
6.2831853070 1.5707963266 5.4977871436 3.1415926544 3.1415926534
result:
ok 5 numbers
Test #2:
score: 0
Accepted
time: 368ms
memory: 4228kb
input:
10000 16 1 -10 -6 -5 -6 -4 9 -2 5 -2 10 1 -7 1 -5 1 6 3 1 4 -9 6 -10 6 -3 6 1 8 -5 8 -4 9 -4 17 4 -9 2 -8 -4 -8 -3 -8 -1 -6 -2 -6 -1 -6 8 -5 -8 -5 10 -4 8 -2 -8 4 -9 4 0 5 -3 8 -5 9 -2 10 10 10 6 -7 2 -4 6 -2 -7 -2 -1 -1 7 1 -9 1 8 3 -4 7 -4 9 -2 14 3 -9 10 -8 -10 -8 -8 -6 -7 -6 -5 -1 -7 -1 -2 0 -1 ...
output:
1.6929914973 2.5748634359 4.6527582671 2.7726331072 5.7427658067 4.8576989908 3.4198923124 2.8127999619 6.2831853070 6.2831853070 5.1172807665 6.1467827026 3.8420890233 2.3424967166 3.4633432078 6.2831853070 5.9614347526 3.3247034707 5.2627749279 5.6724593426 1.6738779351 1.1141908547 2.4087775516 6...
result:
ok 10000 numbers
Test #3:
score: 0
Accepted
time: 369ms
memory: 4228kb
input:
10000 19 7 -10 -6 -10 5 -3 0 -2 -5 -1 1 -1 6 0 3 0 7 1 9 3 -3 3 3 3 8 4 -1 5 8 6 -3 7 -5 7 4 8 10 9 -5 15 15 -9 -1 -8 6 -7 9 -6 -3 -4 -9 -1 -3 -1 8 1 -8 1 -7 3 -2 3 1 6 -9 7 -10 7 0 10 -9 10 3 -7 -1 -6 -2 -6 10 -5 2 -4 2 -3 -7 -2 -9 1 -3 3 4 7 7 15 4 -8 -8 -8 8 -7 0 -7 10 -6 -7 -5 6 -1 -3 -1 0 1 -2 ...
output:
3.9269908168 6.2831853070 3.3602615993 2.6779450444 3.7703889398 1.7625844686 3.8402524781 5.4977871436 2.0344439356 1.8157749897 4.3471875304 6.1412882524 5.1760365892 5.4655402611 5.7690391511 4.3662530166 5.9947557485 4.8922424800 4.1719694799 5.6776406434 5.9614347526 3.5067941032 4.5429759363 5...
result:
ok 10000 numbers
Test #4:
score: 0
Accepted
time: 372ms
memory: 4120kb
input:
10000 18 12 -10 -4 -10 7 -8 -10 -7 -4 -6 5 -6 7 -5 0 -2 -7 -1 2 -1 10 0 2 1 1 3 -2 5 3 5 5 6 -3 8 -3 9 -2 10 1 -10 -9 -7 -7 -5 2 -4 -7 -3 1 3 1 3 3 5 -4 9 2 9 6 11 2 -8 1 -8 6 -7 -2 -6 0 -5 0 -1 -9 2 -8 3 5 6 0 10 -2 10 6 20 9 -10 -6 -10 6 -9 -8 -7 5 -6 -4 -4 -8 -2 -10 -2 -3 -2 4 -1 1 2 -5 3 -2 5 -6...
output:
4.9097845400 1.9756881129 1.9868608323 3.9269908168 3.6977588835 6.2831853070 6.1412882524 6.1938713140 5.8053542520 6.2528915471 5.7288778108 3.0900918424 1.8925468810 5.6341897480 2.8966139903 6.2831853070 2.9147938053 6.1476575930 1.9513027037 5.5643553074 5.4977871436 3.0981417580 4.3906384258 3...
result:
ok 10000 numbers
Test #5:
score: 0
Accepted
time: 364ms
memory: 4188kb
input:
10000 19 7 -10 -1 -8 2 -7 -10 -6 6 -4 7 -3 -5 -3 1 -3 8 -2 4 -1 -7 0 -8 0 9 1 -10 2 1 2 3 3 5 6 -4 10 2 10 3 14 10 -8 2 -6 0 -5 -10 -5 10 -4 7 -3 -6 -2 -6 1 4 1 6 2 -1 3 -6 8 -4 9 -10 10 -1 12 8 -9 5 -7 2 -4 2 0 -2 0 5 1 6 3 2 4 9 5 5 7 -6 9 -9 9 2 19 12 -10 -10 -10 2 -9 -6 -8 2 -7 -5 -6 8 -4 1 -1 -...
output:
3.2393195607 5.2757052417 5.3003915837 5.3871299224 5.8883941873 4.1173193565 1.1383885510 1.5152978213 6.1476575930 6.1588303124 2.5748634359 5.9401613666 1.6085142791 4.6099451267 5.0711596505 4.2345579252 3.7905882124 4.0376480380 3.9160022481 1.0636978222 4.2809882536 5.8572556504 3.4078447025 5...
result:
ok 10000 numbers
Test #6:
score: 0
Accepted
time: 366ms
memory: 4312kb
input:
10000 11 10 -10 -1 -9 4 -9 10 -7 -7 -5 4 -4 -1 -2 -10 0 -7 0 5 3 3 3 5 12 12 -9 6 -9 8 -3 -2 -2 2 0 -4 1 0 2 -3 3 5 5 -2 7 -1 10 3 10 9 14 12 -10 0 -9 -3 -9 1 -9 10 -8 -1 -8 7 -6 -1 -1 -6 -1 2 1 -1 3 -7 4 9 9 -3 10 1 10 4 -9 -3 -7 -1 -6 -10 -3 -2 -3 7 2 -2 2 3 5 2 6 9 9 6 10 2 -9 -9 -9 6 -8 3 -5 -9 ...
output:
6.1378752963 6.2831853070 6.1180366296 3.2003484761 2.6537562147 6.2537820188 3.6052402624 3.5598169830 1.5091461560 5.9275494227 6.2587998978 2.6224465391 4.3938333031 5.4977871436 4.2487413712 5.4977871436 4.6292477483 3.5464844397 6.0048856480 1.1967518951 2.8854412708 6.2000440751 1.9237867144 5...
result:
ok 10000 numbers
Test #7:
score: 0
Accepted
time: 376ms
memory: 4340kb
input:
10000 14 1 -100 13 -96 -31 -82 -92 -77 -98 -50 1 -14 -57 -14 -31 -11 64 -8 75 9 68 25 100 54 -36 59 13 93 31 19 19 -76 -39 -60 95 -51 18 -39 11 -21 -46 -6 -94 -5 83 -3 -34 -3 72 0 -55 3 79 14 17 23 -88 32 37 50 70 61 -5 62 -43 84 -100 97 -50 13 7 -99 -63 -68 -87 -24 62 -20 -18 -2 -66 7 -49 13 -21 15...
output:
1.2713093973 6.2831853070 5.2225147205 6.0030657034 3.9258721353 5.5465289949 3.2103149235 3.0399300497 4.2275317816 3.0320196655 2.1912152336 3.0390080902 4.3313271504 6.2831853070 5.1100022648 2.9463140259 5.1760365892 5.6991835712 2.0611798649 6.2831853070 2.2278897853 6.1707748614 6.2831853070 6...
result:
ok 10000 numbers
Test #8:
score: 0
Accepted
time: 196ms
memory: 4576kb
input:
100 1413 755 -30 -30 -30 -28 -30 -27 -30 -26 -30 -21 -30 -12 -30 -10 -30 -8 -30 -5 -30 -1 -30 2 -30 4 -30 7 -30 9 -30 17 -30 19 -30 20 -30 23 -30 24 -30 30 -29 -29 -29 -23 -29 -15 -29 0 -29 4 -29 5 -29 9 -29 10 -29 11 -29 12 -29 14 -29 16 -29 17 -29 22 -29 27 -29 28 -28 -28 -28 -25 -28 -23 -28 -22 -...
output:
3.5891126285 2.9797552221 0.2837941090 2.0350277067 4.8879811421 1.0040671091 4.7457099761 5.3255963291 4.3102749645 5.6033836792 1.5798050919 4.3296454703 5.5472220966 1.4601391054 1.5310445512 2.8716749315 2.6325789667 3.1240505933 0.6805212245 5.4201656348 4.7789571440 2.4030352029 4.2799812046 4...
result:
ok 100 numbers
Test #9:
score: 0
Accepted
time: 201ms
memory: 5428kb
input:
20 9045 8319 -1000 -986 -1000 -683 -1000 -430 -1000 -292 -1000 53 -1000 667 -999 -855 -999 -350 -999 -174 -999 -51 -999 -43 -999 235 -999 465 -999 530 -998 -997 -998 -311 -998 21 -998 44 -998 182 -997 -313 -997 -195 -997 -13 -997 412 -997 425 -996 -542 -996 -348 -996 -126 -996 -59 -996 -40 -996 84 -...
output:
5.9115110037 3.7438685149 2.5384828581 2.1599673587 4.2950377094 4.7716744746 4.6824078124 5.0789843940 1.6008018212 3.3404025454 3.3687925280 2.1130160280 4.8553994099 4.3240010531 0.1078535609 0.1798211240 5.3766547604 4.4495660237 4.3944016649 2.9381848720
result:
ok 20 numbers
Test #10:
score: 0
Accepted
time: 252ms
memory: 32700kb
input:
1 166347 18723 -1000 -979 -1000 -975 -1000 -928 -1000 -914 -1000 -898 -1000 -889 -1000 -876 -1000 -873 -1000 -858 -1000 -840 -1000 -838 -1000 -801 -1000 -783 -1000 -744 -1000 -738 -1000 -733 -1000 -713 -1000 -712 -1000 -695 -1000 -689 -1000 -680 -1000 -675 -1000 -671 -1000 -646 -1000 -643 -1000 -608...
output:
0.8514491788
result:
ok found '0.8514492', expected '0.8514492', error '0.0000000'
Test #11:
score: 0
Accepted
time: 292ms
memory: 31276kb
input:
1 154903 84960 -1000 -979 -1000 -965 -1000 -956 -1000 -945 -1000 -920 -1000 -901 -1000 -878 -1000 -860 -1000 -858 -1000 -709 -1000 -693 -1000 -648 -1000 -619 -1000 -602 -1000 -579 -1000 -474 -1000 -473 -1000 -454 -1000 -443 -1000 -427 -1000 -407 -1000 -403 -1000 -384 -1000 -351 -1000 -279 -1000 -244...
output:
3.5389266852
result:
ok found '3.5389267', expected '3.5389267', error '0.0000000'
Test #12:
score: 0
Accepted
time: 308ms
memory: 31004kb
input:
1 158037 96343 -1000 -1000 -1000 -905 -1000 -881 -1000 -833 -1000 -804 -1000 -803 -1000 -782 -1000 -775 -1000 -765 -1000 -759 -1000 -756 -1000 -748 -1000 -722 -1000 -674 -1000 -669 -1000 -630 -1000 -610 -1000 -573 -1000 -443 -1000 -411 -1000 -409 -1000 -403 -1000 -388 -1000 -366 -1000 -349 -1000 -33...
output:
3.9720287781
result:
ok found '3.9720288', expected '3.9720288', error '0.0000000'
Test #13:
score: 0
Accepted
time: 374ms
memory: 4148kb
input:
10000 17 12 -853202371 684059854 -659446544 -924219854 -418025687 117998679 -399757126 -365708913 -331597239 -270896799 -204989763 869548983 -118492298 963842298 -77481232 672198731 45930201 -58234380 52605147 -900097542 78371985 940503934 235210685 595759114 391284089 234315077 416229789 -827244230...
output:
5.3985251098 5.3739078747 1.1735781727 1.5443652593 3.7782886492 3.5704715867 6.2829748586 5.0959252026 2.9875782463 2.3055665056 3.3907841640 5.7854732379 4.8109636121 0.9567574178 4.6294317308 4.7995080627 4.1702889054 5.7394776961 6.1210294478 3.5674682927 6.2280647242 6.2825675745 4.0146545582 0...
result:
ok 10000 numbers
Test #14:
score: 0
Accepted
time: 227ms
memory: 4344kb
input:
1000 133 108 -994106086 710243426 -991027749 -548437545 -983318226 -917527783 -943673956 -368162275 -935819096 616077188 -928022346 487569673 -924213856 -369318351 -914827619 426646545 -883935180 590882141 -870015071 -270471333 -834927107 -211343853 -829266515 354007200 -788041913 -60481736 -7822837...
output:
5.7428017919 1.9153642396 3.8043457979 1.7919162703 3.1695206704 6.0786462144 3.7860674593 3.6659690725 6.2265834528 5.9021521924 5.9443157091 0.7151676868 3.8315742528 1.2228457183 2.5984264667 5.5473289203 4.0791947426 0.7042209928 5.8578224266 0.6894854476 0.9379821527 1.4215226988 4.2713262790 3...
result:
ok 1000 numbers
Test #15:
score: 0
Accepted
time: 206ms
memory: 4444kb
input:
100 1367 924 -999416811 990355566 -997656126 346133696 -997071616 -657387469 -996176051 12622726 -995720693 334093112 -995478093 891631278 -994503890 341858449 -994297596 499383911 -993234202 533518057 -991636838 -4170504 -990563582 -407186200 -989454027 653116272 -989132124 -780605454 -988073521 -1...
output:
4.5051534904 2.7125589324 5.8396785808 6.0229771113 0.4616060429 0.9869912330 1.3219708486 1.9258417456 5.5086083531 4.6463553311 2.2876774100 2.1848725876 4.8094091916 0.4770789900 0.5563416048 1.0936191639 5.1827145534 3.1131846616 4.3802339548 2.7492592823 2.7917953345 6.2717333574 5.7538750451 2...
result:
ok 100 numbers
Test #16:
score: 0
Accepted
time: 255ms
memory: 6620kb
input:
10 13806 4955 -999669776 933068103 -999542354 721337508 -999499427 357140594 -999429088 -925180511 -999334813 -145726169 -999291694 -886327684 -999281647 811188099 -999145269 860687107 -998961821 -979442436 -998769313 446186367 -998591455 658309173 -998539751 -569480843 -998479467 279850955 -9984754...
output:
2.4170804678 6.1611922289 3.9600203766 3.9943617927 2.5515508360 0.5227238366 4.0978438276 6.2103826630 5.9817280291 0.7772236857
result:
ok 10 numbers
Test #17:
score: 0
Accepted
time: 233ms
memory: 23472kb
input:
1 112596 94970 -999980219 399324466 -999932413 952114487 -999894556 -951211102 -999891030 -996222974 -999864824 412806264 -999853190 -269700371 -999845814 -23906803 -999841507 -459154880 -999825178 716247149 -999761774 -154047106 -999729655 -171480333 -999709604 -666447277 -999704754 -22442485 -9996...
output:
5.4425938791
result:
ok found '5.4425939', expected '5.4425939', error '0.0000000'
Test #18:
score: 0
Accepted
time: 257ms
memory: 32548kb
input:
1 161568 13252 -999991243 -113889211 -999976572 -361096764 -999970140 -505012445 -999960654 600963873 -999959339 -269932510 -999956568 734634576 -999941447 716485764 -999940305 64397798 -999939982 746532931 -999939921 995002380 -999932747 185078659 -999927136 585216518 -999914684 898656539 -99990452...
output:
0.6424745905
result:
ok found '0.6424746', expected '0.6424746', error '0.0000000'
Test #19:
score: 0
Accepted
time: 399ms
memory: 37188kb
input:
1 186192 126483 -999998234 974001047 -999976292 -133179660 -999967957 112862981 -999957851 70030467 -999951528 743907713 -999931316 66002112 -999907988 888991267 -999905412 470798211 -999903986 -103943462 -999900422 255729004 -999898174 917068198 -999884392 -183592605 -999880179 -650076162 -99987469...
output:
4.4012456839
result:
ok found '4.4012457', expected '4.4012457', error '0.0000000'
Test #20:
score: 0
Accepted
time: 201ms
memory: 4380kb
input:
1000 133 9 -10 -839744900 -10 -620593257 -10 -322048342 -10 578093727 -10 898998949 -9 -833794004 -9 -704882916 -9 -570204575 -9 -506146571 -9 -109555290 -9 309734100 -9 396668416 -8 -928874025 -8 376566668 -8 596463598 -8 600491164 -8 894775141 -7 -281322833 -7 49984651 -7 154512939 -7 205573228 -7...
output:
3.1415925827 6.2831852480 3.1415926142 3.1415911739 6.2831852701 6.2831852951 3.1415926490 6.2831853035 3.1415926400 6.2831852505 6.2831852814 3.1415927590 3.1415926452 3.1415926236 3.1415926150 6.2831852731 3.1415926492 3.1415926535 3.1415926531 6.2831853045 6.2831852027 3.1415926590 3.1415926503 3...
result:
ok 1000 numbers
Test #21:
score: 0
Accepted
time: 147ms
memory: 9016kb
input:
5 23120 8224 -10 -999575056 -10 -997485895 -10 -995458183 -10 -986953157 -10 -985268102 -10 -983223383 -10 -980910524 -10 -980404283 -10 -973605147 -10 -972441960 -10 -972440422 -10 -969122114 -10 -965754004 -10 -964812113 -10 -964558462 -10 -963159275 -10 -962972564 -10 -962085557 -10 -961552443 -1...
output:
3.1415926421 3.1415926310 3.1415926066 3.1415926492 6.2831852720
result:
ok 5 numbers
Test #22:
score: 0
Accepted
time: 161ms
memory: 26372kb
input:
1 99995 60000 1 100001 1 100002 1 100003 1 100004 1 100005 1 100006 1 100007 1 100008 1 100009 1 100010 1 100011 1 100012 1 100013 1 100014 1 100015 1 100016 1 100017 1 100018 1 100019 1 100020 1 100021 1 100022 1 100023 1 100024 1 100025 1 100026 1 100027 1 100028 1 100029 1 100030 1 100031 1 10003...
output:
6.2831853067
result:
ok found '6.2831853', expected '6.2831853', error '0.0000000'
Extra Test:
score: 0
Extra Test Passed