QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#295474 | #7514. Clique Challenge | sofija6 | TL | 616ms | 24072kb | C++23 | 3.2kb | 2023-12-31 08:23:03 | 2023-12-31 08:23:04 |
Judging History
answer
#include <bits/stdc++.h>
#define ll long long
#define MAXN 1010
#define MAXS (1<<26)
#define MOD 1000000007
using namespace std;
vector<ll> G[MAXN];
bool act[MAXN],dpl[MAXS],dpr[MAXS],edge[MAXN][MAXN];
ll sum[MAXS],mask1[MAXS];
int main()
{
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
ll n,m,u,v;
cin >> n >> m;
for (ll i=1;i<=m;i++)
{
cin >> u >> v;
G[u].push_back(v);
G[v].push_back(u);
edge[u][v]=edge[v][u]=true;
}
for (ll i=1;i<=n;i++)
act[i]=true;
ll cnt=n,ans=0;
while (cnt)
{
vector<pair<ll,ll> > deg;
for (ll i=1;i<=n;i++)
{
if (act[i])
{
ll c=0;
for (ll next : G[i])
c+=act[next];
deg.push_back({c,i});
}
}
sort(deg.begin(),deg.end());
u=deg[0].second;
act[u]=false;
cnt--;
vector<ll> w,l,r;
for (ll next : G[u])
{
if (act[next])
w.push_back(next);
}
for (ll i=0;i<w.size()/2;i++)
l.push_back(w[i]);
for (ll i=w.size()/2;i<w.size();i++)
r.push_back(w[i]);
for (ll i=0;i<(1<<l.size());i++)
dpl[i]=true;
for (ll i=0;i<(1<<r.size());i++)
dpr[i]=true;
ll m[l.size()+5]={0};
for (ll i=0;i<l.size();i++)
{
for (ll j=0;j<r.size();j++)
{
if (!edge[l[i]][r[j]])
m[i]+=(1<<j);
}
}
for (ll i=1;i<(1<<l.size());i++)
{
ll pos;
for (ll j=0;j<l.size();j++)
{
if ((1<<j)&i)
pos=j;
}
for (ll j=0;j<l.size();j++)
{
if ((1<<j)&i && j!=pos && !edge[l[j]][l[pos]])
dpl[i]=false;
}
dpl[i]=(dpl[i] && dpl[i^(1<<pos)]);
mask1[i]=mask1[i^(1<<pos)]|m[pos];
}
for (ll i=1;i<(1<<r.size());i++)
{
ll pos;
for (ll j=0;j<r.size();j++)
{
if ((1<<j)&i)
pos=j;
}
for (ll j=0;j<r.size();j++)
{
if ((1<<j)&i && j!=pos && !edge[r[j]][r[pos]])
dpr[i]=false;
}
dpr[i]=(dpr[i] && dpr[i^(1<<pos)]);
}
for (ll i=0;i<(1<<r.size());i++)
sum[i]=dpr[i];
for (ll i=0;i<r.size();i++)
{
for (ll j=0;j<(1<<r.size());j++)
{
if (j&(1<<i))
sum[j]+=sum[j^(1<<i)];
if (sum[j]>=MOD)
sum[j]%=MOD;
}
}
for (ll i=0;i<(1<<l.size());i++)
{
if (!dpl[i])
continue;
ll mask=(1<<r.size())-1;
mask^=(mask&mask1[i]);
ans+=sum[mask];
if (ans>=MOD)
ans%=MOD;
}
}
cout << ans;
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 9616kb
input:
3 2 1 2 2 3
output:
5
result:
ok single line: '5'
Test #2:
score: 0
Accepted
time: 0ms
memory: 5588kb
input:
3 3 1 2 1 3 2 3
output:
7
result:
ok single line: '7'
Test #3:
score: 0
Accepted
time: 16ms
memory: 7648kb
input:
1000 100 446 789 167 547 254 777 777 185 33 446 777 847 185 877 757 167 72 383 847 446 254 478 959 185 757 446 847 959 959 167 757 847 747 757 446 167 989 757 547 777 33 747 33 254 254 843 33 547 446 980 877 205 185 72 980 959 33 205 877 757 33 847 478 843 757 478 167 877 72 789 877 959 980 478 167 ...
output:
1373
result:
ok single line: '1373'
Test #4:
score: 0
Accepted
time: 209ms
memory: 9220kb
input:
1000 1000 770 105 219 498 686 498 343 534 15 591 919 588 149 588 298 915 551 523 710 116 105 637 523 991 343 476 145 420 604 588 254 120 551 421 476 298 900 710 915 343 445 421 986 867 445 588 219 356 919 105 584 875 991 604 776 919 588 254 919 421 356 348 105 551 15 113 919 15 356 523 343 155 770 9...
output:
6621319
result:
ok single line: '6621319'
Test #5:
score: 0
Accepted
time: 226ms
memory: 10916kb
input:
1000 1000 840 251 559 572 77 993 857 254 176 77 30 423 838 251 862 466 920 254 254 593 593 423 780 575 487 865 952 176 480 77 351 487 620 390 231 496 423 761 993 385 383 390 220 620 862 805 920 838 77 339 838 231 691 384 930 251 840 77 593 993 838 930 176 761 383 761 480 487 251 383 295 390 289 808 ...
output:
6403686
result:
ok single line: '6403686'
Test #6:
score: 0
Accepted
time: 209ms
memory: 9240kb
input:
1000 1000 179 73 322 80 586 342 73 819 973 184 508 131 351 342 576 179 397 23 523 926 684 73 479 722 973 80 576 397 301 508 903 618 672 192 33 903 973 885 523 661 885 8 787 988 647 990 393 211 722 586 751 926 960 322 179 131 131 988 196 342 508 351 672 342 644 926 990 819 301 80 73 397 104 131 678 3...
output:
6066915
result:
ok single line: '6066915'
Test #7:
score: 0
Accepted
time: 193ms
memory: 9816kb
input:
1000 1000 179 707 71 73 410 726 459 410 84 432 500 73 578 864 71 145 538 578 265 145 707 565 674 772 859 676 826 71 538 459 548 479 609 45 674 707 30 145 45 726 41 73 446 265 145 479 587 642 179 632 908 548 674 410 361 632 500 642 929 976 73 446 41 361 71 726 179 212 341 929 45 859 826 179 632 144 4...
output:
6242289
result:
ok single line: '6242289'
Test #8:
score: 0
Accepted
time: 174ms
memory: 7768kb
input:
1000 1000 146 917 487 589 225 927 972 449 969 728 99 288 615 564 728 146 880 561 563 745 442 880 118 392 634 564 636 917 442 738 280 254 225 710 254 449 221 564 394 969 556 99 634 589 976 301 117 487 561 867 98 880 392 880 917 819 556 634 941 969 653 927 972 615 146 819 969 98 653 941 809 699 590 30...
output:
9171879
result:
ok single line: '9171879'
Test #9:
score: 0
Accepted
time: 13ms
memory: 5828kb
input:
1000 1000 709 558 844 316 552 395 944 619 805 279 837 392 822 772 964 805 597 397 814 344 527 401 964 299 922 782 746 349 795 537 945 57 527 176 815 937 257 955 245 108 245 593 932 155 597 812 18 856 116 218 671 142 511 945 481 405 966 695 782 38 130 638 470 692 671 307 837 571 925 43 411 249 613 38...
output:
2186
result:
ok single line: '2186'
Test #10:
score: 0
Accepted
time: 13ms
memory: 5716kb
input:
1000 1000 833 350 567 76 488 416 350 135 874 275 555 996 263 152 14 380 409 442 672 836 490 5 421 901 781 875 135 209 162 442 6 47 111 180 317 162 876 368 393 656 712 535 583 976 918 591 29 887 436 599 702 5 512 778 901 111 423 591 274 599 686 655 2 656 444 172 836 800 865 920 3 19 781 375 157 683 8...
output:
2193
result:
ok single line: '2193'
Test #11:
score: 0
Accepted
time: 14ms
memory: 5592kb
input:
1000 1000 655 894 253 168 615 321 526 160 225 578 845 473 14 839 321 659 138 448 575 787 342 557 338 501 192 504 888 172 531 616 83 136 623 137 746 344 385 337 505 394 634 740 242 449 321 630 804 971 386 160 466 641 83 133 570 527 448 273 888 653 3 479 467 18 630 93 271 574 653 5 764 370 972 466 501...
output:
2159
result:
ok single line: '2159'
Test #12:
score: 0
Accepted
time: 18ms
memory: 5968kb
input:
1000 1000 210 626 59 74 95 486 328 63 894 222 908 764 299 197 871 600 954 241 431 660 816 997 186 34 737 604 889 568 454 115 61 933 417 221 279 971 333 340 143 374 168 409 426 50 875 423 86 413 805 719 222 319 461 864 244 679 49 220 98 579 329 737 568 926 328 330 694 445 318 480 576 748 242 989 968 ...
output:
2013
result:
ok single line: '2013'
Test #13:
score: 0
Accepted
time: 24ms
memory: 5636kb
input:
1000 1000 937 639 771 95 626 134 869 66 465 29 889 944 194 239 284 303 935 111 795 806 737 770 665 343 862 528 232 571 342 458 401 490 452 628 425 384 998 578 192 168 64 651 486 311 840 667 400 255 364 206 486 289 761 912 189 907 158 339 891 336 392 782 598 233 899 539 19 780 190 535 933 700 500 232...
output:
2004
result:
ok single line: '2004'
Test #14:
score: 0
Accepted
time: 18ms
memory: 5936kb
input:
1000 1000 568 607 217 544 12 124 766 801 924 290 957 218 816 552 913 189 982 916 896 289 304 74 426 190 844 543 849 972 386 59 626 472 869 838 234 581 232 707 623 685 873 344 295 496 352 557 314 35 329 432 155 422 803 322 42 735 36 760 249 306 706 533 748 161 887 911 872 64 440 450 662 607 274 659 7...
output:
2002
result:
ok single line: '2002'
Test #15:
score: 0
Accepted
time: 23ms
memory: 7700kb
input:
1000 1000 726 492 65 652 168 218 347 489 35 415 73 324 80 419 237 352 378 3 708 286 933 810 116 563 819 610 670 386 392 940 434 926 341 617 820 842 618 974 592 344 724 578 955 761 26 902 545 496 688 636 273 225 749 840 661 784 917 595 503 84 414 252 925 877 352 479 792 914 54 666 324 257 642 637 801...
output:
2002
result:
ok single line: '2002'
Test #16:
score: 0
Accepted
time: 22ms
memory: 5880kb
input:
1000 1000 344 107 264 268 28 38 211 260 741 682 654 885 607 213 610 296 869 556 685 269 996 929 61 370 804 605 786 570 41 448 104 549 245 166 36 84 265 135 704 409 60 299 895 645 868 140 3 483 448 341 778 460 930 13 796 688 936 751 808 458 859 502 918 43 920 287 680 976 918 172 378 156 962 834 635 3...
output:
2002
result:
ok single line: '2002'
Test #17:
score: 0
Accepted
time: 14ms
memory: 7632kb
input:
1000 1000 117 152 117 375 190 586 117 586 278 546 788 450 117 90 511 586 450 595 586 492 870 278 17 117 586 275 520 471 796 117 520 112 117 431 292 520 320 520 278 95 586 677 450 402 298 520 586 109 450 409 520 607 684 278 520 898 340 278 17 520 586 64 586 100 520 647 450 270 520 617 685 117 117 985...
output:
6290
result:
ok single line: '6290'
Test #18:
score: 0
Accepted
time: 11ms
memory: 5636kb
input:
1000 1000 88 346 534 200 881 661 869 23 35 869 26 785 158 785 881 981 835 881 88 466 88 559 760 88 905 869 869 672 869 256 945 534 881 664 905 30 631 868 536 124 869 271 712 88 534 30 513 785 785 902 491 869 869 868 505 869 488 897 905 144 88 513 785 536 785 599 303 905 534 869 158 897 384 905 236 9...
output:
132867
result:
ok single line: '132867'
Test #19:
score: 0
Accepted
time: 11ms
memory: 7648kb
input:
1000 1000 463 338 246 242 91 76 130 858 818 250 255 639 135 571 809 250 794 255 91 170 386 678 639 513 507 684 463 407 463 969 463 769 685 463 250 513 126 684 684 444 53 969 250 876 811 639 286 571 386 684 571 407 794 463 507 463 295 170 678 809 91 678 811 349 777 53 463 286 261 401 130 346 91 625 8...
output:
9143208
result:
ok single line: '9143208'
Test #20:
score: 0
Accepted
time: 82ms
memory: 6248kb
input:
1000 1000 624 79 120 926 418 455 310 792 116 165 688 185 34 792 985 129 884 79 624 847 356 494 79 785 15 891 792 455 274 554 891 518 453 116 792 188 356 57 884 669 926 940 608 673 847 884 884 455 871 985 418 15 185 926 871 608 78 145 554 494 356 669 129 792 624 129 274 79 284 129 688 116 940 650 884...
output:
119880110
result:
ok single line: '119880110'
Test #21:
score: 0
Accepted
time: 431ms
memory: 20752kb
input:
1000 780 456 159 722 862 983 491 946 335 159 379 516 983 330 823 491 335 607 645 910 379 538 872 823 456 518 840 414 456 507 453 910 872 456 461 235 607 340 379 379 20 351 491 946 159 159 722 840 116 823 679 840 594 10 983 910 10 125 594 777 116 760 516 20 840 909 491 516 862 872 838 228 760 517 679...
output:
511621042
result:
ok single line: '511621042'
Test #22:
score: 0
Accepted
time: 45ms
memory: 6740kb
input:
1000 528 760 566 75 156 566 600 566 478 156 216 582 489 395 712 75 955 930 81 344 216 395 930 380 172 156 172 616 142 81 582 75 493 81 925 996 712 771 55 996 760 771 25 712 600 600 634 210 478 56 55 380 700 87 380 55 210 955 930 771 566 142 712 719 930 582 771 87 582 700 344 925 760 318 489 707 489 ...
output:
589935502
result:
ok single line: '589935502'
Test #23:
score: 0
Accepted
time: 17ms
memory: 7684kb
input:
1000 300 794 991 641 688 983 652 689 863 762 458 997 526 553 102 114 924 997 648 114 16 652 102 289 553 794 16 762 652 691 289 991 983 693 689 688 693 553 326 233 326 326 641 458 114 353 102 648 326 353 326 924 526 693 458 526 114 762 553 458 326 233 410 326 762 353 689 641 924 410 924 326 997 693 3...
output:
33555406
result:
ok single line: '33555406'
Test #24:
score: 0
Accepted
time: 616ms
memory: 24072kb
input:
1000 1000 678 283 616 283 675 678 449 486 486 892 734 781 465 343 496 379 35 301 299 409 496 781 978 538 434 283 453 406 751 289 812 979 289 379 374 979 449 206 299 219 486 649 496 883 334 807 892 449 678 812 892 299 383 289 978 453 242 971 734 37 35 892 971 217 423 467 978 283 334 138 465 374 978 4...
output:
53556160
result:
ok single line: '53556160'
Test #25:
score: 0
Accepted
time: 11ms
memory: 5672kb
input:
1000 1000 78 443 134 843 114 831 45 245 630 312 985 457 813 702 431 78 572 646 362 749 190 195 248 197 739 312 749 346 104 620 646 848 792 362 646 243 460 630 190 399 617 457 396 195 151 749 568 243 19 565 19 721 551 630 168 437 630 31 96 157 329 621 869 758 329 550 261 749 620 630 212 431 646 758 7...
output:
103300
result:
ok single line: '103300'
Test #26:
score: 0
Accepted
time: 14ms
memory: 5828kb
input:
1000 999 702 735 84 611 593 671 901 43 512 383 394 247 341 663 434 17 857 142 885 287 759 533 257 982 713 234 75 661 272 242 577 797 570 271 948 478 890 593 113 469 425 72 943 513 452 937 611 291 928 50 261 776 872 469 208 10 855 987 510 190 16 785 562 815 901 965 34 895 790 368 948 511 442 457 798 ...
output:
3331
result:
ok single line: '3331'
Test #27:
score: 0
Accepted
time: 12ms
memory: 5604kb
input:
1000 1000 561 417 561 221 739 163 431 493 561 113 739 433 431 64 619 739 265 561 260 674 266 739 561 619 561 198 431 522 518 561 522 561 730 776 431 924 863 730 674 866 739 236 579 730 431 237 561 86 418 431 561 247 810 674 730 981 674 199 739 863 739 813 730 221 74 561 739 79 431 943 776 431 288 73...
output:
7128
result:
ok single line: '7128'
Test #28:
score: 0
Accepted
time: 15ms
memory: 5656kb
input:
1000 1000 33 910 133 738 274 738 703 511 818 349 452 882 33 589 751 882 243 980 3 511 349 415 222 415 620 312 415 749 162 980 243 3 818 118 980 312 483 862 511 12 882 703 563 862 929 289 749 738 88 3 929 3 452 620 274 415 582 593 749 620 563 164 34 620 952 33 7 452 620 818 818 703 582 186 582 903 96...
output:
34603935
result:
ok single line: '34603935'
Test #29:
score: 0
Accepted
time: 46ms
memory: 6128kb
input:
1000 990 255 105 147 35 153 337 754 337 179 683 570 807 850 545 147 672 337 705 447 748 781 864 604 294 781 147 35 82 570 604 474 54 296 748 683 563 193 718 864 105 255 147 296 683 147 748 672 54 228 186 296 222 186 604 186 563 545 746 89 513 754 296 82 447 474 35 604 447 781 850 683 186 705 147 337...
output:
442451836
result:
ok single line: '442451836'
Test #30:
score: 0
Accepted
time: 23ms
memory: 5860kb
input:
1000 1000 718 915 120 276 503 601 798 754 81 338 537 83 857 331 718 461 338 651 915 429 915 408 814 375 718 897 871 355 207 603 494 331 52 563 116 81 814 674 857 537 289 81 718 871 81 909 929 375 537 573 537 658 725 364 402 814 573 120 754 333 331 674 537 601 798 338 563 227 871 289 364 429 857 923 ...
output:
603980708
result:
ok single line: '603980708'
Test #31:
score: 0
Accepted
time: 11ms
memory: 5740kb
input:
1000 1000 958 768 706 122 253 922 629 958 931 413 283 860 188 567 766 729 269 231 965 288 743 207 991 207 61 965 522 520 567 164 231 691 164 915 723 992 588 389 498 967 936 279 766 207 36 946 339 989 218 183 132 99 70 202 634 971 860 848 663 848 663 158 669 405 13 207 983 231 221 740 882 967 140 253...
output:
96119
result:
ok single line: '96119'
Test #32:
score: 0
Accepted
time: 13ms
memory: 5828kb
input:
1000 1000 538 269 110 87 434 7 892 344 432 612 700 505 795 647 82 323 339 395 849 499 755 165 833 55 720 356 612 66 898 257 922 276 729 162 395 883 840 629 886 668 278 735 394 859 677 156 435 805 474 339 92 140 832 764 233 26 192 635 165 784 138 417 585 474 278 619 739 82 154 651 884 503 504 883 575...
output:
4727
result:
ok single line: '4727'
Test #33:
score: 0
Accepted
time: 14ms
memory: 7684kb
input:
1000 1000 856 285 780 619 299 191 355 538 339 369 440 573 458 865 853 170 1 984 387 500 656 704 783 255 596 773 767 300 819 533 39 474 455 741 3 884 525 253 852 483 186 488 807 255 781 364 173 514 145 317 146 584 98 585 752 182 88 763 806 828 492 921 775 50 963 40 657 49 742 157 452 832 344 20 793 1...
output:
2499
result:
ok single line: '2499'
Test #34:
score: 0
Accepted
time: 14ms
memory: 6064kb
input:
1000 999 225 313 436 33 227 970 316 147 255 623 774 491 98 448 416 945 498 479 452 440 649 108 71 669 269 172 978 892 804 486 626 904 940 212 35 189 78 957 680 328 791 68 587 99 69 313 583 910 14 558 376 219 428 144 370 337 154 49 297 885 964 473 308 56 953 507 981 602 9 666 757 238 809 370 283 133 ...
output:
1999
result:
ok single line: '1999'
Test #35:
score: -100
Time Limit Exceeded
input:
1000 990 534 306 192 420 625 205 266 815 371 257 541 312 312 554 526 986 257 794 809 266 156 137 767 266 192 767 541 870 649 625 554 454 809 792 1000 378 46 526 792 985 306 554 755 957 541 957 1000 257 720 809 153 205 796 306 985 306 870 454 274 794 794 901 986 937 96 720 306 156 796 794 635 837 23 ...