QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#572282#6401. Classic: N Real DNA Potszfasion#TL 8ms12232kbC++141.5kb2024-09-18 13:27:222024-09-18 13:27:22

Judging History

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

  • [2024-09-18 13:27:22]
  • 评测
  • 测评结果:TL
  • 用时:8ms
  • 内存:12232kb
  • [2024-09-18 13:27:22]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
const long long N = 3e6 + 20, M = 998244353;
#define eps 8e-12
#define int long long
// #define int __int128
#define ll long long
#define all(x) x.begin(), x.end()
#define endl '\n'
#define ls (p << 1)
#define rs ((p << 1) | 1)
#define f1 first
#define pb push_back
#define f2 second
#define IOS std::ios::sync_with_stdio(0), std::cin.tie(0), std::cout.tie(0), std::cout << std::fixed << std::setprecision(7);
int n;
double x[N], y[N], a[N], b[N];
int dp[N];
int read()
{
	int x = 0, f = 1;
	char ch = getchar();
	while (ch < '0' || ch > '9')
	{
		f = -1;
		ch = getchar();
	}
	while (ch >= '0' && ch <= '9')
	{
		x = x * 10 + ch - '0';
		ch = getchar();
	}
	x *= f;
	return x;
}
void write(int x)
{
	if (x < 0)
	{
		putchar('-');
		x = -x;
	}
	if (x > 9)
		write(x / 10);
	putchar(x % 10 + '0');
}
signed main()
{
	IOS;
	int k;
	cin >> n >> k;
	for (int i = 1; i <= n; i++)
		cin >> x[i] >> y[i];
	double l , r = LLONG_MAX;
	l=-r;
	auto check = [&](double k1) -> bool
	{
		for (int i = 1; i <= n; i++)
			dp[i] = 0, a[i] = y[i] - k1 * x[i];
		int len = 0;
		b[0]=-1e18;
		for (int i = 1; i <= n; i++)
		{
			if (a[i] > b[len])
			{
				b[++len] = a[i];
			}
			else
			{
				b[lower_bound(b + 1, b + len + 1, a[i]) - b] = a[i];
			}
		}
		return len >= k;
	};
	//check(0.5);
	while (l < r - eps)
	{
		double mid = (l + r) / 2;
		if (check(mid))
			l = mid+eps;
		else
			r = mid-eps;
	}
	cout<<fixed<<setprecision(6)<<l;
	return false;
}

詳細信息

Test #1:

score: 100
Accepted
time: 2ms
memory: 12060kb

input:

4 3
1 2
2 4
3 3
4 1

output:

-1.000000

result:

ok found '-1.0000000', expected '-1.0000000', error '-0.0000000'

Test #2:

score: 0
Accepted
time: 2ms
memory: 12128kb

input:

2 2
1 1
5 3

output:

0.500000

result:

ok found '0.5000000', expected '0.5000000', error '0.0000000'

Test #3:

score: 0
Accepted
time: 0ms
memory: 12080kb

input:

2 2
222640995 547139825
489207317 725361095

output:

0.668581

result:

ok found '0.6685810', expected '0.6685813', error '0.0000003'

Test #4:

score: 0
Accepted
time: 3ms
memory: 12068kb

input:

1000 20
545612 774435015
828317 212155588
5294705 85926095
5648835 764528941
6159263 570820268
7177330 744079287
8446124 162286636
8735551 586528841
9263030 524140841
9505706 636254627
12111352 182639083
12750780 238494418
13149143 913232250
13382784 11485121
13699797 414697815
14263990 423817548
15...

output:

3.793210

result:

ok found '3.7932100', expected '3.7932105', error '0.0000001'

Test #5:

score: 0
Accepted
time: 0ms
memory: 12156kb

input:

1000 100
163505 684865289
2674260 837752883
2694530 150054425
2870791 236723512
3262597 800933455
3558503 905056977
4260872 45990808
4532415 268478572
5299228 546172100
6019224 12074540
6345109 747272172
6539452 449655551
7215852 676269961
9062989 769545718
9444242 874911191
10264016 341805234
10595...

output:

-1.860578

result:

ok found '-1.8605780', expected '-1.8605779', error '0.0000001'

Test #6:

score: 0
Accepted
time: 6ms
memory: 12232kb

input:

5000 10
34774 620025564
366562 278306777
446710 509672662
650220 70882120
824803 317731338
881144 257861254
1063458 61483347
1071840 639872836
1263842 30790337
1591940 346781076
1964777 814735151
2067497 63962255
2220071 379252135
2539054 428050443
2937092 423099578
3088992 959927412
3229098 9591796...

output:

134.621473

result:

ok found '134.6214730', expected '134.6214728', error '0.0000000'

Test #7:

score: 0
Accepted
time: 8ms
memory: 12172kb

input:

5000 20
199760 355854017
326334 308841311
562097 142603502
737215 739382649
740379 538515503
775788 515038260
817583 280515397
919169 892864353
972326 662840403
1344912 46143677
1550928 380148689
1589971 740794446
1638208 835030507
1707737 1806402
1736374 716485086
1738772 965202367
1855327 28929729...

output:

19.107399

result:

ok found '19.1073990', expected '19.1073989', error '0.0000000'

Test #8:

score: 0
Accepted
time: 2ms
memory: 12136kb

input:

100 80
3642237 433728851
3835922 596838254
4822541 903206579
11786229 71614574
28051109 568783761
37988181 991770771
56927147 913182266
80808317 468372188
96532943 867642142
97069884 869788913
104938691 736691068
115294599 927608069
130086679 135340679
143622561 267761236
147838354 653078316
1483162...

output:

-45.917502

result:

ok found '-45.9175020', expected '-45.9175015', error '0.0000000'

Test #9:

score: 0
Accepted
time: 0ms
memory: 12080kb

input:

300 300
186421 261109479
5746147 454165382
9237830 637520496
9851923 811263876
11414218 355514230
13089969 488595547
14673543 646754325
16206307 26512314
20111827 236176303
29494991 773939650
31542488 394434870
33151870 729247973
35483496 458610267
39685298 553345644
41333867 843739706
41339284 5952...

output:

-45869.322134

result:

ok found '-45869.3221340', expected '-45869.3221340', error '0.0000000'

Test #10:

score: -100
Time Limit Exceeded

input:

1000 2
747727 310492171
1468650 713980779
3789328 757125223
5320562 240087911
5661018 585322880
5727658 166258339
9628311 1509468
9663570 644887821
9705398 201079132
11009052 79093580
11528729 273302786
14435306 891929759
16986960 794877487
17773102 990984060
19350978 246181882
19465885 427225500
23...

output:


result: