QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#307026 | #8004. Bit Component | ucup-team2303 | AC ✓ | 68ms | 4716kb | C++17 | 2.0kb | 2024-01-17 20:03:26 | 2024-01-17 20:03:26 |
Judging History
answer
// #pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
// #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,tune=native")
#include <bits/stdc++.h>
using namespace std;
#define PB emplace_back
// #define int long long
#define ll long long
#define vi vector<int>
#define siz(a) ((int) ((a).size()))
#define rep(i, a, b) for (int i = (a); i <= (b); ++i)
#define per(i, a, b) for (int i = (a); i >= (b); --i)
void print(vi n) { rep(i, 0, siz(n) - 1) cerr << n[i] << " \n"[i == siz(n) - 1]; }
vi get(int n) {
if(n == 1) return vi{0};
vi x = get(n >> 1), y = x;
reverse(y.begin(), y.end());
for(int z : y) x.PB(z + (n >> 1));
// reverse(x.begin(), x.end());
return x;
}
signed main() {
// freopen(".in", "r", stdin);
// freopen(".out", "w", stdout);
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
int a, b;
cin >> a;
if(a == 1) return cout << "YES\n1", 0;
if(a == 3) return cout << "YES\n1 3 2", 0;
if(a == 7) return cout << "YES\n6 4 5 7 2 3 1", 0;
for(b = 1; (b << 1) <= a; b <<= 1);
if(b + b / 2 + 1 > a) return cout << "NO", 0;
// print(get(8));
cout << "YES\n";
vi n = get(b >> 1), ans;
ans.PB(b + b / 2), ans.PB(b);
reverse(next(n.begin()), n.end());
rep(i, 1, siz(n) - 1) {
if(n[i] + b + b / 2 <= a && n[i] != 1) ans.PB(n[i] + b + b / 2);
ans.PB(n[i] + b);
}
ans.PB(1 + b + b / 2);
n = get(b);
reverse(next(n.begin()), n.end());
print(n);
if(__lg(b) & 1) {
rep(i, 1, siz(n) - 1) if(n[i] == b - 1) {
reverse(n.begin() + 1, n.begin() + i + 1);
break;
}
}
else rep(i, 1, siz(n) - 1) if(n[i] == b - 3) {
reverse(n.begin() + 1, n.begin() + i + 1);
break;
}
// print(n);
rep(i, 1, siz(n) - 1) ans.PB(n[i]);
for(int x : ans) cout << x << ' ';
cout << '\n';
// cerr << siz(ans) << '\n';
// for(int x : ans) {
// per(j, 10, 0) cerr << ((x >> j) & 1);
// cerr << '\n';
// }
return cerr << endl << 1.0 * clock() / CLOCKS_PER_SEC << endl, 0;
}
这程序好像有点Bug,我给组数据试试?
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 3504kb
input:
1
output:
YES 1
result:
ok answer is 1
Test #2:
score: 0
Accepted
time: 0ms
memory: 3716kb
input:
2
output:
NO
result:
ok answer is 0
Test #3:
score: 0
Accepted
time: 1ms
memory: 3564kb
input:
3
output:
YES 1 3 2
result:
ok answer is 1
Test #4:
score: 0
Accepted
time: 1ms
memory: 3496kb
input:
4
output:
NO
result:
ok answer is 0
Test #5:
score: 0
Accepted
time: 0ms
memory: 3448kb
input:
5
output:
NO
result:
ok answer is 0
Test #6:
score: 0
Accepted
time: 0ms
memory: 3456kb
input:
6
output:
NO
result:
ok answer is 0
Test #7:
score: 0
Accepted
time: 0ms
memory: 3504kb
input:
7
output:
YES 6 4 5 7 2 3 1
result:
ok answer is 1
Test #8:
score: 0
Accepted
time: 0ms
memory: 3536kb
input:
8
output:
NO
result:
ok answer is 0
Test #9:
score: 0
Accepted
time: 0ms
memory: 3744kb
input:
9
output:
NO
result:
ok answer is 0
Test #10:
score: 0
Accepted
time: 0ms
memory: 3536kb
input:
10
output:
NO
result:
ok answer is 0
Test #11:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
11
output:
NO
result:
ok answer is 0
Test #12:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
12
output:
NO
result:
ok answer is 0
Test #13:
score: 0
Accepted
time: 0ms
memory: 3896kb
input:
13
output:
YES 12 8 10 11 9 13 7 5 4 6 2 3 1
result:
ok answer is 1
Test #14:
score: 0
Accepted
time: 1ms
memory: 3748kb
input:
14
output:
YES 12 8 14 10 11 9 13 7 5 4 6 2 3 1
result:
ok answer is 1
Test #15:
score: 0
Accepted
time: 0ms
memory: 3788kb
input:
15
output:
YES 12 8 14 10 15 11 9 13 7 5 4 6 2 3 1
result:
ok answer is 1
Test #16:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
16
output:
NO
result:
ok answer is 0
Test #17:
score: 0
Accepted
time: 0ms
memory: 3508kb
input:
17
output:
NO
result:
ok answer is 0
Test #18:
score: 0
Accepted
time: 0ms
memory: 3564kb
input:
23
output:
NO
result:
ok answer is 0
Test #19:
score: 0
Accepted
time: 1ms
memory: 3544kb
input:
24
output:
NO
result:
ok answer is 0
Test #20:
score: 0
Accepted
time: 1ms
memory: 3940kb
input:
25
output:
YES 24 16 20 21 23 22 18 19 17 25 13 15 14 10 11 9 8 12 4 5 7 6 2 3 1
result:
ok answer is 1
Test #21:
score: 0
Accepted
time: 1ms
memory: 3872kb
input:
26
output:
YES 24 16 20 21 23 22 26 18 19 17 25 13 15 14 10 11 9 8 12 4 5 7 6 2 3 1
result:
ok answer is 1
Test #22:
score: 0
Accepted
time: 1ms
memory: 3872kb
input:
27
output:
YES 24 16 20 21 23 22 26 18 27 19 17 25 13 15 14 10 11 9 8 12 4 5 7 6 2 3 1
result:
ok answer is 1
Test #23:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
40
output:
NO
result:
ok answer is 0
Test #24:
score: 0
Accepted
time: 1ms
memory: 3848kb
input:
53
output:
YES 48 32 40 41 43 42 46 47 45 44 52 36 53 37 39 38 50 34 51 35 33 49 31 29 28 20 21 23 22 18 19 17 16 30 26 27 25 24 8 9 11 10 14 15 13 12 4 5 7 6 2 3 1
result:
ok answer is 1
Test #25:
score: 0
Accepted
time: 1ms
memory: 3688kb
input:
93
output:
NO
result:
ok answer is 0
Test #26:
score: 0
Accepted
time: 1ms
memory: 4024kb
input:
105
output:
YES 96 64 80 81 83 82 86 87 85 84 92 93 95 94 90 91 89 88 104 72 105 73 75 74 78 79 77 76 100 68 101 69 103 71 102 70 98 66 99 67 65 97 61 63 62 58 59 57 56 40 41 43 42 46 47 45 44 36 37 39 38 34 35 33 32 60 52 53 55 54 50 51 49 48 16 17 19 18 22 23 21 20 28 29 31 30 26 27 25 24 8 9 11 10 14 15 13 1...
result:
ok answer is 1
Test #27:
score: 0
Accepted
time: 0ms
memory: 3688kb
input:
132
output:
NO
result:
ok answer is 0
Test #28:
score: 0
Accepted
time: 0ms
memory: 3884kb
input:
221
output:
YES 192 128 160 161 163 162 166 167 165 164 172 173 175 174 170 171 169 168 184 185 187 186 190 191 189 188 180 181 183 182 178 179 177 176 208 144 209 145 211 147 210 146 214 150 215 151 213 149 212 148 220 156 221 157 159 158 218 154 219 155 217 153 216 152 200 136 201 137 203 139 202 138 206 142 ...
result:
ok answer is 1
Test #29:
score: 0
Accepted
time: 0ms
memory: 3536kb
input:
373
output:
NO
result:
ok answer is 0
Test #30:
score: 0
Accepted
time: 1ms
memory: 3912kb
input:
473
output:
YES 384 256 448 320 449 321 451 323 450 322 454 326 455 327 453 325 452 324 460 332 461 333 463 335 462 334 458 330 459 331 457 329 456 328 472 344 473 345 347 346 350 351 349 348 468 340 469 341 471 343 470 342 466 338 467 339 465 337 464 336 368 369 371 370 374 375 373 372 380 381 383 382 378 379 ...
result:
ok answer is 1
Test #31:
score: 0
Accepted
time: 0ms
memory: 3432kb
input:
513
output:
NO
result:
ok answer is 0
Test #32:
score: 0
Accepted
time: 2ms
memory: 3844kb
input:
934
output:
YES 768 512 896 640 897 641 899 643 898 642 902 646 903 647 901 645 900 644 908 652 909 653 911 655 910 654 906 650 907 651 905 649 904 648 920 664 921 665 923 667 922 666 926 670 927 671 925 669 924 668 916 660 917 661 919 663 918 662 914 658 915 659 913 657 912 656 688 689 691 690 694 695 693 692 ...
result:
ok answer is 1
Test #33:
score: 0
Accepted
time: 0ms
memory: 3744kb
input:
1356
output:
NO
result:
ok answer is 0
Test #34:
score: 0
Accepted
time: 0ms
memory: 3916kb
input:
1651
output:
YES 1536 1024 1280 1281 1283 1282 1286 1287 1285 1284 1292 1293 1295 1294 1290 1291 1289 1288 1304 1305 1307 1306 1310 1311 1309 1308 1300 1301 1303 1302 1298 1299 1297 1296 1328 1329 1331 1330 1334 1335 1333 1332 1340 1341 1343 1342 1338 1339 1337 1336 1320 1321 1323 1322 1326 1327 1325 1324 1316 1...
result:
ok answer is 1
Test #35:
score: 0
Accepted
time: 0ms
memory: 3540kb
input:
2263
output:
NO
result:
ok answer is 0
Test #36:
score: 0
Accepted
time: 0ms
memory: 3936kb
input:
3330
output:
YES 3072 2048 2560 2561 2563 2562 2566 2567 2565 2564 2572 2573 2575 2574 2570 2571 2569 2568 2584 2585 2587 2586 2590 2591 2589 2588 2580 2581 2583 2582 2578 2579 2577 2576 2608 2609 2611 2610 2614 2615 2613 2612 2620 2621 2623 2622 2618 2619 2617 2616 2600 2601 2603 2602 2606 2607 2605 2604 2596 2...
result:
ok answer is 1
Test #37:
score: 0
Accepted
time: 1ms
memory: 3540kb
input:
4375
output:
NO
result:
ok answer is 0
Test #38:
score: 0
Accepted
time: 0ms
memory: 3976kb
input:
7989
output:
YES 6144 4096 7168 5120 7169 5121 7171 5123 7170 5122 7174 5126 7175 5127 7173 5125 7172 5124 7180 5132 7181 5133 7183 5135 7182 5134 7178 5130 7179 5131 7177 5129 7176 5128 7192 5144 7193 5145 7195 5147 7194 5146 7198 5150 7199 5151 7197 5149 7196 5148 7188 5140 7189 5141 7191 5143 7190 5142 7186 5...
result:
ok answer is 1
Test #39:
score: 0
Accepted
time: 0ms
memory: 3752kb
input:
10925
output:
NO
result:
ok answer is 0
Test #40:
score: 0
Accepted
time: 11ms
memory: 3996kb
input:
14097
output:
YES 12288 8192 10240 10241 10243 10242 10246 10247 10245 10244 10252 10253 10255 10254 10250 10251 10249 10248 10264 10265 10267 10266 10270 10271 10269 10268 10260 10261 10263 10262 10258 10259 10257 10256 10288 10289 10291 10290 10294 10295 10293 10292 10300 10301 10303 10302 10298 10299 10297 102...
result:
ok answer is 1
Test #41:
score: 0
Accepted
time: 0ms
memory: 3764kb
input:
16893
output:
NO
result:
ok answer is 0
Test #42:
score: 0
Accepted
time: 11ms
memory: 4016kb
input:
28913
output:
YES 24576 16384 28672 20480 28673 20481 28675 20483 28674 20482 28678 20486 28679 20487 28677 20485 28676 20484 28684 20492 28685 20493 28687 20495 28686 20494 28682 20490 28683 20491 28681 20489 28680 20488 28696 20504 28697 20505 28699 20507 28698 20506 28702 20510 28703 20511 28701 20509 28700 20...
result:
ok answer is 1
Test #43:
score: 0
Accepted
time: 1ms
memory: 3748kb
input:
40092
output:
NO
result:
ok answer is 0
Test #44:
score: 0
Accepted
time: 11ms
memory: 4004kb
input:
54980
output:
YES 49152 32768 40960 40961 40963 40962 40966 40967 40965 40964 40972 40973 40975 40974 40970 40971 40969 40968 40984 40985 40987 40986 40990 40991 40989 40988 40980 40981 40983 40982 40978 40979 40977 40976 41008 41009 41011 41010 41014 41015 41013 41012 41020 41021 41023 41022 41018 41019 41017 41...
result:
ok answer is 1
Test #45:
score: 0
Accepted
time: 1ms
memory: 3508kb
input:
88104
output:
NO
result:
ok answer is 0
Test #46:
score: 0
Accepted
time: 31ms
memory: 4044kb
input:
106284
output:
YES 98304 65536 81920 81921 81923 81922 81926 81927 81925 81924 81932 81933 81935 81934 81930 81931 81929 81928 81944 81945 81947 81946 81950 81951 81949 81948 81940 81941 81943 81942 81938 81939 81937 81936 81968 81969 81971 81970 81974 81975 81973 81972 81980 81981 81983 81982 81978 81979 81977 81...
result:
ok answer is 1
Test #47:
score: 0
Accepted
time: 0ms
memory: 3496kb
input:
152797
output:
NO
result:
ok answer is 0
Test #48:
score: 0
Accepted
time: 68ms
memory: 4716kb
input:
200000
output:
YES 196608 131072 163840 163841 163843 163842 163846 163847 163845 163844 163852 163853 163855 163854 163850 163851 163849 163848 163864 163865 163867 163866 163870 163871 163869 163868 163860 163861 163863 163862 163858 163859 163857 163856 163888 163889 163891 163890 163894 163895 163893 163892 16...
result:
ok answer is 1
Test #49:
score: 0
Accepted
time: 0ms
memory: 3936kb
input:
3073
output:
YES 3072 2048 2560 2561 2563 2562 2566 2567 2565 2564 2572 2573 2575 2574 2570 2571 2569 2568 2584 2585 2587 2586 2590 2591 2589 2588 2580 2581 2583 2582 2578 2579 2577 2576 2608 2609 2611 2610 2614 2615 2613 2612 2620 2621 2623 2622 2618 2619 2617 2616 2600 2601 2603 2602 2606 2607 2605 2604 2596 2...
result:
ok answer is 1
Test #50:
score: 0
Accepted
time: 3ms
memory: 4156kb
input:
16383
output:
YES 12288 8192 14336 10240 14337 10241 14339 10243 14338 10242 14342 10246 14343 10247 14341 10245 14340 10244 14348 10252 14349 10253 14351 10255 14350 10254 14346 10250 14347 10251 14345 10249 14344 10248 14360 10264 14361 10265 14363 10267 14362 10266 14366 10270 14367 10271 14365 10269 14364 102...
result:
ok answer is 1
Test #51:
score: 0
Accepted
time: 3ms
memory: 4064kb
input:
32767
output:
YES 24576 16384 28672 20480 28673 20481 28675 20483 28674 20482 28678 20486 28679 20487 28677 20485 28676 20484 28684 20492 28685 20493 28687 20495 28686 20494 28682 20490 28683 20491 28681 20489 28680 20488 28696 20504 28697 20505 28699 20507 28698 20506 28702 20510 28703 20511 28701 20509 28700 20...
result:
ok answer is 1
Test #52:
score: 0
Accepted
time: 0ms
memory: 3836kb
input:
399
output:
YES 384 256 320 321 323 322 326 327 325 324 332 333 335 334 330 331 329 328 344 345 347 346 350 351 349 348 340 341 343 342 338 339 337 336 368 369 371 370 374 375 373 372 380 381 383 382 378 379 377 376 360 361 363 362 366 367 365 364 356 357 359 358 354 355 353 352 288 289 291 290 294 295 293 292 ...
result:
ok answer is 1
Test #53:
score: 0
Accepted
time: 0ms
memory: 3500kb
input:
5757
output:
NO
result:
ok answer is 0
Test #54:
score: 0
Accepted
time: 1ms
memory: 3540kb
input:
179
output:
NO
result:
ok answer is 0
Test #55:
score: 0
Accepted
time: 1ms
memory: 3876kb
input:
228
output:
YES 192 128 224 160 225 161 227 163 226 162 166 167 165 228 164 172 173 175 174 170 171 169 168 184 185 187 186 190 191 189 188 180 181 183 182 178 179 177 176 208 144 209 145 211 147 210 146 214 150 215 151 213 149 212 148 220 156 221 157 223 159 222 158 218 154 219 155 217 153 216 152 200 136 201 ...
result:
ok answer is 1
Extra Test:
score: 0
Extra Test Passed