QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#858464#9675. 电池检测KaXdd_#10 13ms11524kbC++142.7kb2025-01-16 17:30:292025-01-16 17:30:34

Judging History

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

  • [2025-01-16 17:30:34]
  • 评测
  • 测评结果:10
  • 用时:13ms
  • 内存:11524kb
  • [2025-01-16 17:30:29]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long
#define rg register
#define il inline
#define TT(T, Args) template<typename T, typename... Args>
#define L(i, a, b) for (rg int i = (a); i <= (b); i++)
#define R(i, a, b) for (rg int i = (a); i >= (b); i--)
#define rep(i, a) for (rg auto i : a)
using namespace std;
namespace xmpl_{
	il int rd(){
		int f = 1, x = 0;
		char ch = getchar();
		while(ch < '0' || ch > '9'){
			if (ch == '-') f = -1;
			ch = getchar();
		}
		while(ch >= '0' && ch <= '9'){
			x = x * 10 + ch - '0';
			ch = getchar();
		}
		return x * f;
	}
	TT(T, Args) il void rd(T &x){
		int f = 1;
		x = 0;
		char ch = getchar();
		while(ch < '0' || ch > '9'){
			if (ch == '-') f = -1;
			ch = getchar();
		}
		while(ch >= '0' && ch <= '9'){
			x = x * 10 + ch - '0';
			ch = getchar();
		}
		x *= f;
	}
	TT(T, Args) il void rd(T &x, Args &...args){rd(x), rd(args...);}
	TT(T, Args) il void rdArr(T *arr, int cnt){while(cnt--) rd(*arr), arr++;}
	il void wt(int x){
		if (x < 0){
			putchar('-');
			x = -x;
		}
		if (x > 9) wt(x / 10);
		putchar(x % 10 + 48);
	}
	il void wtln(int x){wt(x), putchar('\n');}
	il void wtsp(int x){wt(x), putchar(' ');}
	il void swap(int &x, int &y){x ^= y ^= x ^= y;}
	il int max(int x, int y){return (x > y ? x : y);}
	il int min(int x, int y){return (x < y ? x : y);}
	il void ckmax(int &x, int y){x = max(x, y);}
	il void ckmin(int &x, int y){x = min(x, y);}
	il void cksum(int &x, int y){x += y;}
	TT(T, Args) il void ckmax(T &x, T y, Args &...args){ckmax(x, y), ckmax(x, args...);}
	TT(T, Args) il void ckmin(T &x, T y, Args &...args){ckmin(x, y), ckmin(x, args...);}
	TT(T, Args) il void cksum(T &x, T y, Args &...args){cksum(x, y), cksum(x, args...);}
}
using namespace xmpl_;
using namespace std;

const int N = 1e3 + 5, M = 21, p = 1e9 + 7, inf = 0x3f3f3f3f3f3f3f3f;
int a, b, F[N][N];

il void init(){
	memset(F, 0x3f, sizeof(F));
	L(i, 2, 1000) F[i][0] = 1;
	L(i, 2, 1000){
		L(j, 2, 1000){
			int mid = j / (i - 1);
			L(k, max(0ll, mid - 5), min(j - 1, mid + 5)){
				F[i][j] = min(F[i - 1][j - k] + k * (k - 1) / 2, i * j + j * (j - 1) / 2 + 1);
			}
		}
	}
	// L(j, 2, 1000){
	// 	wtsp(F[2][j]), wtln((2 + j) * (1 + j) / 2);
	// }
}

il void clear(){
	
}

il void work(){
	/*
	a + b 点,完全图
	*/
	rd(a, b);
	if (a == 2 && b == 1) return wt(3), void();
	// if (a == 2) return wt((a + b) * (a + b - 1) / 2), void();
	if (a <= b + 1) wt(F[a][b]);
	else wt(b + 1);
}

signed main(){
	// #define file 114514
#ifdef file	
	freopen("code.in", "r", stdin);
	freopen("code.out", "w", stdout);
#endif
	init();
	int t = 1;
	t = rd();
	while(t--){
		clear();
		work();
		puts("");
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 10
Accepted
time: 13ms
memory: 11508kb

input:

3
2 1
3 1
2 2

output:

3
2
6

result:

ok 3 number(s): "3 2 6"

Test #2:

score: 0
Wrong Answer
time: 12ms
memory: 11428kb

input:

12
2 1
2 2
2 3
2 4
3 1
3 2
3 3
3 4
4 1
4 2
4 3
4 4

output:

3
6
10
15
2
8
13
19
2
3
16
23

result:

wrong answer 6th numbers differ - expected: '4', found: '8'

Subtask #2:

score: 5
Accepted

Test #3:

score: 5
Accepted
time: 11ms
memory: 11504kb

input:

1000
2 1
2 2
2 3
2 4
2 5
2 6
2 7
2 8
2 9
2 10
2 11
2 12
2 13
2 14
2 15
2 16
2 17
2 18
2 19
2 20
2 21
2 22
2 23
2 24
2 25
2 26
2 27
2 28
2 29
2 30
2 31
2 32
2 33
2 34
2 35
2 36
2 37
2 38
2 39
2 40
2 41
2 42
2 43
2 44
2 45
2 46
2 47
2 48
2 49
2 50
2 51
2 52
2 53
2 54
2 55
2 56
2 57
2 58
2 59
2 60
2 61...

output:

3
6
10
15
21
28
36
45
55
66
78
91
105
120
136
153
171
190
210
231
253
276
300
325
351
378
406
435
465
496
528
561
595
630
666
703
741
780
820
861
903
946
990
1035
1081
1128
1176
1225
1275
1326
1378
1431
1485
1540
1596
1653
1711
1770
1830
1891
1953
2016
2080
2145
2211
2278
2346
2415
2485
2556
2628
27...

result:

ok 1000 numbers

Subtask #3:

score: 0
Wrong Answer

Test #4:

score: 0
Wrong Answer
time: 12ms
memory: 11524kb

input:

1000
3 1
3 2
3 3
3 4
3 5
3 6
3 7
3 8
3 9
3 10
3 11
3 12
3 13
3 14
3 15
3 16
3 17
3 18
3 19
3 20
3 21
3 22
3 23
3 24
3 25
3 26
3 27
3 28
3 29
3 30
3 31
3 32
3 33
3 34
3 35
3 36
3 37
3 38
3 39
3 40
3 41
3 42
3 43
3 44
3 45
3 46
3 47
3 48
3 49
3 50
3 51
3 52
3 53
3 54
3 55
3 56
3 57
3 58
3 59
3 60
3 61...

output:

2
8
13
19
26
34
43
53
64
76
89
103
61
72
76
88
93
106
112
126
133
148
156
172
181
198
208
226
237
256
268
288
301
322
336
358
373
396
412
436
453
478
496
522
541
568
588
616
637
666
688
718
741
772
796
828
853
886
912
946
973
1008
1036
1072
1101
1138
1168
1206
1237
1276
1308
1348
1381
1422
1456
1498...

result:

wrong answer 2nd numbers differ - expected: '4', found: '8'

Subtask #4:

score: 5
Accepted

Test #5:

score: 5
Accepted
time: 12ms
memory: 11464kb

input:

1000
907 241
495 435
227 139
616 1
433 35
588 407
533 322
995 961
748 310
212 36
968 500
294 187
375 371
307 14
648 180
122 28
304 253
818 812
41 5
286 62
573 340
547 224
347 35
279 56
151 85
626 410
456 248
578 470
11 6
952 771
404 302
77 27
168 40
524 517
171 147
407 294
268 106
100 27
549 196
973...

output:

242
436
140
2
36
408
323
962
311
37
501
188
372
15
181
29
254
813
6
63
341
225
36
57
86
411
249
471
7
772
303
28
41
518
148
295
107
28
197
374
35
337
236
92
714
832
465
377
70
496
141
52
38
47
632
355
96
329
130
395
233
124
815
408
201
20
56
630
544
62
379
618
415
17
131
265
179
232
316
109
60
266
7...

result:

ok 1000 numbers

Subtask #5:

score: 0
Skipped

Dependency #1:

0%

Subtask #6:

score: 0
Skipped

Dependency #5:

0%

Subtask #7:

score: 0
Skipped

Dependency #1:

0%