QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#408478#6517. Computational Geometryx17875487211WA 2ms10068kbC++141.1kb2024-05-10 13:53:342024-05-10 13:53:36

Judging History

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

  • [2024-05-10 13:53:36]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:10068kb
  • [2024-05-10 13:53:34]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=5e3+10;
int Dp[2*maxn][maxn],T,n,lp[2*maxn][maxn];
bool comlin[2*maxn][maxn];
struct node{
	int x,y;
}p[maxn];
int Dis(int i,int j){
	return (p[i].x-p[j].x)*(p[i].x-p[j].x)+(p[i].y-p[j].y)*(p[i].y-p[j].y);
}
signed main(){
	scanf("%lld",&T);
	while(T--){
		scanf("%lld",&n);
		for(int i=1;i<=n;i++) scanf("%lld%lld",&p[i].x,&p[i].y),p[i+n]=p[i];
		for(int j=0;j<n;j++)
			for(int i=1;i+j<=2*n;i++)
				if(j==0) Dp[i][j]=0;
				else Dp[i][j]=max(Dp[i][j-1],Dis(i,i+j));
		for(int i=2*n;i>=1;i--)
			for(int j=0;j<n&&i+j<=2*n;j++){
				if(j==0) lp[i][j]=0;
				else lp[i][j]=max(lp[i+1][j-1],Dp[i][j]);
				if(j<=1) comlin[i][j]=1;
				else comlin[i][j]=(comlin[i+1][j-1]&((p[i].x-p[i+1].x)*(p[i+1].y-p[i+2].y)==(p[i].y-p[i+1].y)*(p[i+1].x-p[i+2].x)));
			}
		int ans=1e18;
		for(int i=1;i<=n;i++)
			for(int j=i+2;j<=n;j++){
				if(comlin[i][j-i]||comlin[j][n+i-j]) continue;
				ans=min(ans,lp[i][j-i]+lp[j][n+i-j]);
			}
		printf("%lld\n",ans);
	}
	return 0;
}

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 7960kb

input:

2
4
1 0
2 0
1 1
0 0
6
10 4
9 7
5 7
4 5
6 4
9 3

output:

4
44

result:

ok 2 number(s): "4 44"

Test #2:

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

input:

713
8
8 25
3 15
0 5
10 0
19 2
24 6
23 15
15 34
8
25 16
18 25
10 32
1 23
0 14
21 0
27 2
32 6
7
16 15
8 20
1 16
0 12
16 0
21 1
24 5
7
15 1
18 0
24 8
27 15
4 19
0 17
7 8
4
10 20
0 30
15 0
14 10
6
15 0
24 10
21 14
12 14
7 11
0 3
7
18 7
16 9
12 10
6 9
0 4
5 0
15 1
9
0 23
8 13
14 6
24 0
34 1
41 11
37 20
1...

output:

1075
1389
706
687
1550
497
300
1668
471
162
519
190
786
983
367
930
580
524
509
275
617
298
146
1330
494
965
599
1321
866
1210
233
398
560
1548
871
938
366
500
371
1118
1222
1994
712
586
858
624
697
575
1274
882
1035
406
934
670
990
1231
513
2871
939
2735
1610
834
721
585
203
198
1666
617
1166
326
2...

result:

ok 713 numbers

Test #3:

score: -100
Wrong Answer
time: 2ms
memory: 8092kb

input:

723
6
219724071 0
454078946 131628774
497404433 165947891
427997418 299842932
68283732 510015817
0 327227140
5
277969751 0
576739203 275664810
244855879 638262097
13873538 700473186
0 59956198
10
69526931 509564969
0 395765436
101436487 0
273066511 46581979
904969235 467379058
942000353 535129295
93...

output:

320990950510053393
818929519958899381
1000000000000000000
711353303900820471
683190682500395857
594439231930042527
659610359567672203
1000000000000000000
845514798756141601
410893515758460170
293647337551438590
889581785464512646
1000000000000000000
1000000000000000000
993125871111020743
88416805922...

result:

wrong answer 3rd numbers differ - expected: '1129629590903770087', found: '1000000000000000000'