QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#294845 | #4829. Mark on a Graph | ucup-team1055# | 0 | 2ms | 3980kb | C++20 | 6.8kb | 2023-12-30 16:57:01 | 2023-12-30 16:57:01 |
answer
#line 2 "/Users/noya2/Desktop/Noya2_library/template/template.hpp"
using namespace std;
#include<bits/stdc++.h>
#line 1 "/Users/noya2/Desktop/Noya2_library/template/inout_old.hpp"
namespace noya2 {
template <typename T, typename U>
ostream &operator<<(ostream &os, const pair<T, U> &p){
os << p.first << " " << p.second;
return os;
}
template <typename T, typename U>
istream &operator>>(istream &is, pair<T, U> &p){
is >> p.first >> p.second;
return is;
}
template <typename T>
ostream &operator<<(ostream &os, const vector<T> &v){
int s = (int)v.size();
for (int i = 0; i < s; i++) os << (i ? " " : "") << v[i];
return os;
}
template <typename T>
istream &operator>>(istream &is, vector<T> &v){
for (auto &x : v) is >> x;
return is;
}
void in() {}
template <typename T, class... U>
void in(T &t, U &...u){
cin >> t;
in(u...);
}
void out() { cout << "\n"; }
template <typename T, class... U, char sep = ' '>
void out(const T &t, const U &...u){
cout << t;
if (sizeof...(u)) cout << sep;
out(u...);
}
template<typename T>
void out(const vector<vector<T>> &vv){
int s = (int)vv.size();
for (int i = 0; i < s; i++) out(vv[i]);
}
struct IoSetup {
IoSetup(){
cin.tie(nullptr);
ios::sync_with_stdio(false);
cout << fixed << setprecision(15);
cerr << fixed << setprecision(7);
}
} iosetup_noya2;
} // namespace noya2
#line 1 "/Users/noya2/Desktop/Noya2_library/template/const.hpp"
namespace noya2{
const int iinf = 1'000'000'007;
const long long linf = 2'000'000'000'000'000'000LL;
const long long mod998 = 998244353;
const long long mod107 = 1000000007;
const long double pi = 3.14159265358979323;
const vector<int> dx = {0,1,0,-1,1,1,-1,-1};
const vector<int> dy = {1,0,-1,0,1,-1,-1,1};
const string ALP = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const string alp = "abcdefghijklmnopqrstuvwxyz";
const string NUM = "0123456789";
void yes(){ cout << "Yes\n"; }
void no(){ cout << "No\n"; }
void YES(){ cout << "YES\n"; }
void NO(){ cout << "NO\n"; }
void yn(bool t){ t ? yes() : no(); }
void YN(bool t){ t ? YES() : NO(); }
} // namespace noya2
#line 1 "/Users/noya2/Desktop/Noya2_library/template/utils.hpp"
namespace noya2{
unsigned long long inner_binary_gcd(unsigned long long a, unsigned long long b){
if (a == 0 || b == 0) return a + b;
int n = __builtin_ctzll(a); a >>= n;
int m = __builtin_ctzll(b); b >>= m;
while (a != b) {
int mm = __builtin_ctzll(a - b);
bool f = a > b;
unsigned long long c = f ? a : b;
b = f ? b : a;
a = (c - b) >> mm;
}
return a << min(n, m);
}
template<typename T> T gcd_fast(T a, T b){ return static_cast<T>(inner_binary_gcd(abs(a),abs(b))); }
long long sqrt_fast(long long n) {
if (n <= 0) return 0;
long long x = sqrt(n);
while ((x + 1) * (x + 1) <= n) x++;
while (x * x > n) x--;
return x;
}
template<typename T> T floor_div(const T n, const T d) {
assert(d != 0);
return n / d - static_cast<T>((n ^ d) < 0 && n % d != 0);
}
template<typename T> T ceil_div(const T n, const T d) {
assert(d != 0);
return n / d + static_cast<T>((n ^ d) >= 0 && n % d != 0);
}
template<typename T> void uniq(vector<T> &v){
sort(v.begin(),v.end());
v.erase(unique(v.begin(),v.end()),v.end());
}
template <typename T, typename U> inline bool chmin(T &x, U y) { return (y < x) ? (x = y, true) : false; }
template <typename T, typename U> inline bool chmax(T &x, U y) { return (x < y) ? (x = y, true) : false; }
template<typename T> inline bool range(T l, T x, T r){ return l <= x && x < r; }
} // namespace noya2
#line 8 "/Users/noya2/Desktop/Noya2_library/template/template.hpp"
#define rep(i,n) for (int i = 0; i < (int)(n); i++)
#define repp(i,m,n) for (int i = (m); i < (int)(n); i++)
#define reb(i,n) for (int i = (int)(n-1); i >= 0; i--)
#define all(v) (v).begin(),(v).end()
using ll = long long;
using ld = long double;
using uint = unsigned int;
using ull = unsigned long long;
using pii = pair<int,int>;
using pll = pair<ll,ll>;
using pil = pair<int,ll>;
using pli = pair<ll,int>;
namespace noya2{
/* ~ (. _________ . /) */
}
using namespace noya2;
#line 2 "c.cpp"
#line 2 "/Users/noya2/Desktop/Noya2_library/misc/rng.hpp"
#line 4 "/Users/noya2/Desktop/Noya2_library/misc/rng.hpp"
namespace noya2 {
// [0, 2^64 - 1)
ull rng() {
static ull _x = 88172645463325252UL;
return _x ^= _x << 7, _x ^= _x >> 9;
}
// [l, r]
ll rng(ll l, ll r) {
assert(l <= r);
return l + rng() % ull(r - l + 1);
}
// [l, r)
ll randint(ll l, ll r) {
assert(l < r);
return l + rng() % ull(r - l);
}
// [0.0, 1.0)
ld rnd() { return rng() * 5.42101086242752217004e-20; }
// [l, r)
ld rnd(ld l, ld r) {
assert(l < r);
return l + rnd() * (r - l);
}
} // namespace noya2
#line 4 "c.cpp"
ll tot = 0, cnt = 0;
map<int,ll> mp;
void jikken(){
int n = 1000;
int m = 5000;
set<pii> st;
vector<int> deg(n,0);
rep(tt,m){
while (true){
int u = randint(0,n);
int v = randint(0,n);
if (u > v) swap(u,v);
if (u == v) continue;
if (st.contains(pii(u,v))) continue;
st.insert(pii(u,v));
deg[u]++;
deg[v]++;
break;
}
}
int mi = iinf, ma = -1;
rep(i,n){
chmin(mi,deg[i]);
chmax(ma,deg[i]);
}
tot += ma;
cnt += 1;
mp[ma]++;
}
void solve(){
// jikken(); return ;
int n, m; in(n,m);
vector<int> deg(n,0);
set<pii> st;
rep(i,m){
int u, v; in(u,v); u--, v--;
if (u > v) swap(u,v);
st.insert(pii(u,v));
deg[u]++;
deg[v]++;
}
vector<int> ids(n); iota(all(ids),0);
sort(all(ids),[&](int l, int r){
return deg[l] > deg[r];
});
if (deg[ids[0]] != deg[ids[1]] && deg[ids[1]] != deg[ids[2]]){
int u = ids[0];
int v = ids[1];
if (u > v) swap(u,v);
if (st.contains(pii(u,v))){
out("ok");
return ;
}
}
vector<pii> add;
if (deg[ids[1]] == deg[ids[2]]){
add.emplace_back(ids[0],ids[n-1]);
add.emplace_back(ids[1],ids[n-2]);
}
if (deg[ids[0]] == deg[ids[1]]){
add.emplace_back(ids[0],ids[n-3]);
}
{
int u = ids[0];
int v = ids[1];
if (u > v) swap(u,v);
if (!st.contains(pii(u,v))){
add.emplace_back(u,v);
}
}
out("mark");
out(add.size());
for (auto [u, v] : add){
out(u+1,v+1);
}
}
int main(){
int t = 1; // in(t);
while (t--) { solve(); }
// out(tot,cnt);
// out(ld(tot)/ld(cnt));
// for (auto [ma, c] : mp) out(ma,c);
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 3752kb
input:
1000 3560 603 151 415 20 102 569 895 552 678 734 24 614 689 518 440 223 751 919 223 433 711 551 502 634 706 583 812 501 514 535 780 751 720 530 532 384 888 139 864 791 292 675 171 881 30 592 464 557 280 299 654 650 894 335 250 532 792 10 83 969 118 771 579 300 852 983 243 940 957 939 817 889 911 319...
output:
mark 2 733 762 310 733
input:
1000 3562 950 554 396 217 466 376 330 865 163 684 50 833 648 137 781 1000 184 95 844 383 831 175 48 355 279 904 167 379 278 494 582 250 506 567 209 500 64 422 253 49 663 368 964 882 292 403 831 643 999 851 125 553 102 506 827 437 726 125 932 719 641 339 721 655 102 790 267 793 201 155 186 576 898 36...
output:
ok
result:
ok all right
Test #2:
score: 100
Accepted
time: 1ms
memory: 3836kb
input:
1000 2000 457 335 160 497 464 992 892 255 853 3 308 301 970 363 541 299 89 418 425 128 626 827 603 854 484 874 755 295 607 483 798 552 356 850 320 357 254 940 675 901 168 525 301 636 520 555 773 910 343 701 889 966 218 529 909 950 71 64 682 284 424 138 721 792 670 544 386 72 654 909 725 235 592 437 ...
output:
mark 2 747 114 747 761
input:
1000 2002 610 181 640 320 118 165 377 313 621 518 358 293 525 365 912 594 562 553 541 519 660 299 428 406 670 489 127 722 130 848 332 232 333 220 537 547 522 665 610 982 842 663 236 995 318 614 193 126 257 999 906 319 276 553 532 563 3 629 982 741 685 786 411 279 165 960 167 507 489 385 605 104 965 ...
output:
ok
result:
ok all right
Test #3:
score: 100
Accepted
time: 2ms
memory: 3832kb
input:
1000 5000 449 632 597 26 701 322 249 190 411 770 666 596 989 995 112 861 445 818 544 659 24 680 739 593 344 439 193 932 600 526 574 869 216 918 716 793 259 686 555 993 255 578 659 271 328 524 729 672 39 771 241 866 27 790 417 109 56 403 338 299 387 232 280 306 589 794 833 419 900 802 54 697 539 807 ...
output:
mark 3 869 673 539 98 539 869
input:
1000 5003 551 203 786 996 796 219 572 208 802 412 127 305 923 361 479 435 24 121 75 559 605 578 947 106 570 156 365 128 352 917 729 647 128 110 345 309 992 501 13 996 854 986 582 609 245 471 461 754 865 326 1 934 62 839 112 888 373 321 533 744 176 306 461 115 566 344 781 337 274 421 117 462 634 530 ...
output:
ok
result:
ok all right
Test #4:
score: 100
Accepted
time: 1ms
memory: 3896kb
input:
1000 3156 347 398 792 278 754 442 413 757 391 130 636 625 207 437 81 415 47 974 887 779 524 619 379 894 868 594 653 919 29 117 123 867 632 505 648 147 130 420 495 876 637 659 882 348 462 878 282 646 398 525 419 224 926 448 305 934 855 570 396 345 774 918 336 123 502 491 984 783 845 142 790 594 754 4...
output:
mark 2 115 823 115 418
input:
1000 3158 540 769 439 852 901 654 845 121 154 787 213 734 215 276 159 469 266 325 123 439 16 909 438 346 810 843 150 447 841 721 811 101 642 355 125 480 437 788 775 174 865 396 418 309 399 885 287 402 786 474 456 465 441 28 766 878 754 994 290 668 225 18 34 879 394 426 639 127 836 887 748 615 334 74...
output:
ok
result:
ok all right
Test #5:
score: 100
Accepted
time: 1ms
memory: 3980kb
input:
1000 3433 634 21 789 966 541 959 213 381 366 781 107 649 747 122 336 869 222 648 833 972 929 524 712 524 744 525 568 679 634 163 901 501 56 518 128 587 720 117 208 439 860 85 852 168 934 947 34 858 520 568 408 464 232 432 999 504 71 982 957 372 570 436 281 309 410 405 521 275 554 589 4 707 498 148 5...
output:
mark 1 631 797
input:
1000 3434 901 246 724 301 416 864 342 660 387 898 735 811 356 790 390 457 783 903 899 769 437 114 257 179 750 607 514 238 669 573 109 13 905 300 341 848 446 656 992 861 957 638 776 682 505 114 117 713 892 978 669 188 683 655 5 358 753 318 157 802 671 425 441 167 30 188 844 42 82 762 513 661 6 97 465...
output:
ok
result:
ok all right
Test #6:
score: 100
Accepted
time: 1ms
memory: 3732kb
input:
1000 3057 985 223 432 967 405 822 845 650 893 646 599 718 754 710 333 73 392 355 895 496 200 562 816 36 457 953 9 623 889 662 482 590 249 29 689 694 185 990 285 690 12 323 611 560 903 722 476 86 105 666 441 193 695 640 36 617 840 42 80 527 977 539 606 150 384 585 784 648 919 360 157 532 568 98 995 8...
output:
mark 1 134 393
input:
1000 3058 29 48 203 26 942 210 954 309 294 719 280 107 14 443 241 921 666 607 733 571 432 91 921 572 990 304 552 44 520 921 243 22 4 640 623 947 42 660 877 225 45 146 263 667 509 515 450 626 603 573 971 732 337 771 237 348 652 580 168 116 256 454 75 314 250 947 138 624 995 567 719 835 191 934 578 21...
output:
ok
result:
ok all right
Test #7:
score: 100
Accepted
time: 1ms
memory: 3744kb
input:
1000 3085 484 405 841 443 661 315 392 941 355 558 523 394 773 929 673 840 5 707 255 610 744 58 301 794 505 33 668 533 787 945 747 810 803 115 340 900 791 909 596 418 129 491 460 698 156 233 664 502 231 465 795 486 829 102 608 212 253 344 419 557 100 421 321 793 207 302 544 479 33 916 736 129 6 156 9...
output:
mark 1 581 807
input:
1000 3086 665 821 248 628 417 787 95 734 953 941 570 533 479 888 883 619 174 625 613 554 480 160 570 398 86 617 76 6 518 662 743 672 728 94 896 52 778 568 474 293 977 247 701 533 219 773 31 664 108 860 640 186 907 603 436 948 289 874 197 710 396 963 453 369 843 44 765 772 200 347 595 330 959 65 53 3...
output:
ok
result:
ok all right
Test #8:
score: 100
Accepted
time: 1ms
memory: 3804kb
input:
1000 4289 963 66 959 467 930 83 419 699 731 948 702 583 699 245 636 721 859 551 377 251 90 889 286 843 908 47 864 979 223 948 269 684 85 579 162 376 414 255 602 884 65 132 842 907 488 360 553 898 649 249 253 711 675 632 629 446 708 413 819 511 512 113 189 76 242 464 828 261 440 737 643 389 75 907 49...
output:
mark 1 611 622
input:
1000 4290 792 673 929 54 935 953 570 751 368 586 798 495 123 259 236 163 75 999 610 299 518 338 495 999 636 660 410 254 84 766 445 483 832 382 680 554 74 443 792 621 318 320 668 204 433 740 662 198 240 752 628 722 278 215 62 755 404 955 102 406 67 129 602 33 681 306 781 759 93 257 425 670 538 759 98...
output:
ok
result:
ok all right
Test #9:
score: 100
Accepted
time: 2ms
memory: 3840kb
input:
1000 4763 544 167 316 76 78 841 699 1 645 745 827 262 568 545 595 81 924 561 108 253 397 626 142 967 613 397 723 633 711 259 363 249 5 436 165 88 178 463 734 529 195 324 135 41 1000 136 215 967 371 638 588 753 542 909 633 106 537 852 111 232 303 500 892 461 868 300 772 667 40 172 956 575 613 163 933...
output:
mark 3 240 571 148 317 148 240
input:
1000 4766 450 16 910 547 103 875 611 624 918 17 625 777 944 271 347 759 156 950 238 193 936 172 99 591 641 837 904 918 320 308 500 384 444 38 802 50 416 187 23 379 528 116 924 90 295 70 78 971 408 767 429 424 66 440 667 124 847 395 933 148 31 872 880 793 396 746 537 388 638 204 757 414 627 862 93 21...
output:
ok
result:
ok all right
Test #10:
score: 100
Accepted
time: 1ms
memory: 3816kb
input:
1000 4250 747 446 769 425 773 753 217 298 217 4 514 774 752 3 905 857 532 410 224 250 367 33 29 541 809 996 76 960 25 603 532 600 518 304 546 95 735 413 312 476 83 534 157 62 170 836 668 976 244 557 972 860 828 170 975 468 677 714 800 170 530 191 216 930 242 728 318 505 269 162 579 963 769 822 171 4...
output:
mark 3 384 385 170 359 170 384
input:
1000 4253 106 864 622 703 233 579 835 726 598 149 55 9 874 52 466 868 512 378 83 566 308 542 512 152 524 36 278 309 242 600 847 8 345 404 524 394 250 495 872 342 701 604 920 899 19 728 697 545 31 580 388 45 195 984 404 912 377 473 270 344 805 578 742 848 174 919 683 398 349 425 985 94 201 579 240 49...
output:
ok
result:
ok all right
Test #11:
score: 100
Accepted
time: 1ms
memory: 3968kb
input:
1000 3336 161 745 81 702 879 347 452 553 809 32 359 925 984 783 558 366 611 89 948 530 565 496 123 348 534 986 991 511 322 407 6 878 20 897 188 150 527 440 487 333 218 572 597 575 308 684 50 780 900 451 763 785 210 682 964 992 811 537 537 167 320 133 523 899 629 732 435 281 826 405 868 567 201 858 2...
output:
mark 3 299 519 359 206 299 359
input:
1000 3339 163 836 727 514 334 788 161 211 202 297 992 338 407 621 413 164 648 432 541 154 958 909 351 519 438 440 684 58 105 424 540 991 576 77 373 564 213 220 925 379 946 989 369 533 153 420 269 997 693 608 502 281 109 289 358 82 812 370 918 802 30 932 236 185 791 119 766 769 356 736 599 984 668 92...
output:
ok
result:
ok all right
Test #12:
score: 0
Wrong Answer on the first run
input:
1000 3482 910 881 481 989 349 262 963 679 970 752 651 210 86 339 724 310 765 410 118 619 662 351 568 148 292 61 136 385 997 772 210 735 816 310 698 649 581 313 414 280 92 872 965 925 35 930 813 29 617 210 854 940 486 479 412 644 660 623 126 85 664 327 459 165 266 113 108 206 686 660 918 536 173 366 ...
output:
ok
input:
output:
result:
wrong answer Token "ok" doesn't correspond to pattern "mark"