QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#368038#3915. Sort hackingKLPP#AC ✓8ms7856kbC++201.2kb2024-03-26 18:53:222024-03-26 18:53:22

Judging History

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

  • [2024-03-26 18:53:22]
  • 评测
  • 测评结果:AC
  • 用时:8ms
  • 内存:7856kb
  • [2024-03-26 18:53:22]
  • 提交

answer

#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
 
using namespace std;
using namespace __gnu_pbds;
typedef long long int lld;
typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> ordered_set;
#define rep(i,a,b) for(int i=a;i<b;i++)
#define trav(a,v) for(auto a:v)
vector<pair<int,int> >V;
int arr[100];
bool works[(1<<20)];
lld DP[(1<<20)];
void solve(){
	int n;
	cin>>n;
	int m;
	cin>>m;
	rep(i,0,m){
		int x,y;
		cin>>x>>y;
		x--;y--;
		V.push_back({x,y});
	}
	rep(msk,0,(1<<n)){
		rep(i,0,n){
			arr[i]=(msk>>i)%2;
			//cout<<arr[i];
		}
		rep(i,0,m){
			if(arr[V[i].first]>arr[V[i].second])swap(arr[V[i].first],arr[V[i].second]);
		}
		works[msk]=true;
		rep(i,0,n-1){
			if(arr[i]>arr[i+1]){
				works[msk]=false;
			}
		}
		//cout<<" "<<works[msk]<<"\n";
	}
	DP[0]=1;
	rep(msk,1,(1<<n)){
		DP[msk]=0;
		if(works[msk]){
			rep(i,0,n){
				if((msk&(1<<i))>0){
					DP[msk]+=DP[msk-(1<<i)];
				}
			}
		}
		//cout<<msk<<" "<<DP[msk]
	}
	lld fact=1;
	rep(i,1,n+1)fact*=i;
	cout<<fact-DP[(1<<n)-1]<<"\n";
}

int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	int tt=1;
	//cin>>tt;
	while(tt--){
		solve();
	}
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

3 3
1 2
2 3
1 3

output:

2

result:

ok answer is '2'

Test #2:

score: 0
Accepted
time: 1ms
memory: 5700kb

input:

2 1
1 2

output:

0

result:

ok answer is '0'

Test #3:

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

input:

2 1
2 1

output:

2

result:

ok answer is '2'

Test #4:

score: 0
Accepted
time: 1ms
memory: 5756kb

input:

3 2
2 3
1 3

output:

4

result:

ok answer is '4'

Test #5:

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

input:

4 6
2 1
3 4
1 3
2 4
1 2
3 4

output:

0

result:

ok answer is '0'

Test #6:

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

input:

4 5
2 1
3 4
1 3
2 4
1 2

output:

12

result:

ok answer is '12'

Test #7:

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

input:

4 4
2 1
3 4
1 3
2 4

output:

20

result:

ok answer is '20'

Test #8:

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

input:

4 3
2 1
3 4
1 3

output:

20

result:

ok answer is '20'

Test #9:

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

input:

5 9
2 1
4 5
3 5
3 4
1 5
1 3
2 4
1 2
3 4

output:

0

result:

ok answer is '0'

Test #10:

score: 0
Accepted
time: 1ms
memory: 5628kb

input:

5 8
2 1
4 5
3 5
3 4
1 5
1 3
2 4
1 2

output:

72

result:

ok answer is '72'

Test #11:

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

input:

5 7
2 1
4 5
3 5
3 4
1 5
1 3
2 4

output:

96

result:

ok answer is '96'

Test #12:

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

input:

6 12
3 2
3 1
2 1
5 6
4 6
4 5
1 5
2 6
1 3
2 4
1 2
3 4

output:

360

result:

ok answer is '360'

Test #13:

score: 0
Accepted
time: 1ms
memory: 5632kb

input:

6 8
3 2
3 1
2 1
5 6
4 6
4 5
1 5
2 6

output:

720

result:

ok answer is '720'

Test #14:

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

input:

8 24
1 2
4 3
3 1
4 2
2 1
4 3
6 5
7 8
5 7
6 8
5 6
7 8
1 5
2 6
3 7
4 8
1 3
2 4
1 2
3 4
5 7
6 8
5 6
7 8

output:

0

result:

ok answer is '0'

Test #15:

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

input:

8 23
1 2
4 3
3 1
4 2
2 1
4 3
6 5
7 8
5 7
6 8
5 6
7 8
1 5
2 6
3 7
4 8
1 3
2 4
1 2
3 4
5 7
6 8
5 6

output:

20160

result:

ok answer is '20160'

Test #16:

score: 0
Accepted
time: 5ms
memory: 3984kb

input:

15 69
2 3
1 3
1 2
4 5
7 6
6 4
7 5
5 4
7 6
5 1
6 2
7 3
3 1
4 2
2 1
4 3
7 5
6 5
8 9
11 10
10 8
11 9
9 8
11 10
13 12
14 15
12 14
13 15
12 13
14 15
8 12
9 13
10 14
11 15
8 10
9 11
8 9
10 11
12 14
13 15
12 13
14 15
1 9
2 10
3 11
4 12
5 13
6 14
7 15
1 5
2 6
3 7
4 8
1 3
2 4
1 2
3 4
5 7
6 8
5 6
7 8
9 13
10 ...

output:

697426329600

result:

ok answer is '697426329600'

Test #17:

score: 0
Accepted
time: 5ms
memory: 5892kb

input:

15 70
2 3
1 3
1 2
4 5
7 6
6 4
7 5
5 4
7 6
5 1
6 2
7 3
3 1
4 2
2 1
4 3
7 5
6 5
8 9
11 10
10 8
11 9
9 8
11 10
13 12
14 15
12 14
13 15
12 13
14 15
8 12
9 13
10 14
11 15
8 10
9 11
8 9
10 11
12 14
13 15
12 13
14 15
1 9
2 10
3 11
4 12
5 13
6 14
7 15
1 5
2 6
3 7
4 8
1 3
2 4
1 2
3 4
5 7
6 8
5 6
7 8
9 13
10 ...

output:

0

result:

ok answer is '0'

Test #18:

score: 0
Accepted
time: 1ms
memory: 5928kb

input:

15 1
2 1

output:

1307674368000

result:

ok answer is '1307674368000'

Test #19:

score: 0
Accepted
time: 7ms
memory: 3892kb

input:

15 105
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
14 15
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
1 2
2 3
3 4
4 5
5 ...

output:

0

result:

ok answer is '0'

Test #20:

score: 0
Accepted
time: 8ms
memory: 5944kb

input:

15 104
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
14 15
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
1 2
2 3
3 4
4 5
5 ...

output:

87178291200

result:

ok answer is '87178291200'

Test #21:

score: 0
Accepted
time: 8ms
memory: 5948kb

input:

15 103
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
14 15
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
1 2
2 3
3 4
4 5
5 ...

output:

174356582400

result:

ok answer is '174356582400'

Test #22:

score: 0
Accepted
time: 7ms
memory: 6012kb

input:

15 102
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
14 15
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
1 2
2 3
3 4
4 5
5 ...

output:

255307852800

result:

ok answer is '255307852800'

Test #23:

score: 0
Accepted
time: 8ms
memory: 3948kb

input:

15 101
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
14 15
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
1 2
2 3
3 4
4 5
5 ...

output:

336259123200

result:

ok answer is '336259123200'

Test #24:

score: 0
Accepted
time: 7ms
memory: 6012kb

input:

15 100
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
14 15
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
1 2
2 3
3 4
4 5
5 ...

output:

410983372800

result:

ok answer is '410983372800'

Test #25:

score: 0
Accepted
time: 7ms
memory: 5856kb

input:

15 99
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
14 15
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
1 2
2 3
3 4
4 5
5 6...

output:

479959603200

result:

ok answer is '479959603200'

Test #26:

score: 0
Accepted
time: 7ms
memory: 3872kb

input:

15 104
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
14 15
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
1 2
2 3
3 4
4 5
5 ...

output:

261273600

result:

ok answer is '261273600'

Test #27:

score: 0
Accepted
time: 6ms
memory: 3928kb

input:

15 105
2 1
3 2
4 3
5 4
6 5
7 6
8 7
9 8
10 9
11 10
12 11
13 12
14 13
15 14
2 1
3 2
4 3
5 4
6 5
7 6
8 7
9 8
10 9
11 10
12 11
13 12
14 13
2 1
3 2
4 3
5 4
6 5
7 6
8 7
9 8
10 9
11 10
12 11
13 12
2 1
3 2
4 3
5 4
6 5
7 6
8 7
9 8
10 9
11 10
12 11
2 1
3 2
4 3
5 4
6 5
7 6
8 7
9 8
10 9
11 10
2 1
3 2
4 3
5 4
6 ...

output:

1307674368000

result:

ok answer is '1307674368000'

Test #28:

score: 0
Accepted
time: 8ms
memory: 7856kb

input:

15 200
2 1
3 2
4 3
5 4
6 5
7 6
8 7
9 8
10 9
11 10
12 11
13 12
14 13
15 14
2 1
3 2
4 3
5 4
6 5
7 6
8 7
9 8
10 9
11 10
12 11
13 12
14 13
2 1
3 2
4 3
5 4
6 5
7 6
8 7
9 8
10 9
11 10
12 11
13 12
2 1
3 2
4 3
5 4
6 5
7 6
8 7
9 8
10 9
11 10
12 11
2 1
3 2
4 3
5 4
6 5
7 6
8 7
9 8
10 9
11 10
2 1
3 2
4 3
5 4
6 ...

output:

1307674368000

result:

ok answer is '1307674368000'

Test #29:

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

input:

1 1
1 1

output:

0

result:

ok answer is '0'

Test #30:

score: 0
Accepted
time: 1ms
memory: 5768kb

input:

2 2
1 1
2 2

output:

1

result:

ok answer is '1'

Test #31:

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

input:

2 2
2 2
1 1

output:

1

result:

ok answer is '1'

Test #32:

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

input:

3 3
1 1
2 2
3 3

output:

5

result:

ok answer is '5'

Test #33:

score: 0
Accepted
time: 2ms
memory: 5924kb

input:

15 5
1 2
2 3
3 4
4 5
5 6

output:

1307674367968

result:

ok answer is '1307674367968'

Test #34:

score: 0
Accepted
time: 3ms
memory: 5956kb

input:

15 40
2 3
1 3
1 2
4 5
7 6
6 4
7 5
5 4
7 6
5 1
6 2
7 3
3 1
4 2
2 1
4 3
7 5
6 5
8 9
11 10
10 8
11 9
9 8
11 10
13 12
14 15
12 14
13 15
12 13
14 15
8 12
9 13
10 14
11 15
8 10
9 11
8 9
10 11
12 14
13 15

output:

1307674368000

result:

ok answer is '1307674368000'

Test #35:

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

input:

5 9
1 2
2 3
3 4
4 5
1 2
2 3
3 4
2 3
1 2

output:

12

result:

ok answer is '12'

Test #36:

score: 0
Accepted
time: 1ms
memory: 5680kb

input:

8 22
1 2
4 3
3 1
4 2
2 1
4 3
6 5
7 8
5 7
6 8
5 6
7 8
1 5
2 6
3 7
4 8
1 3
2 4
1 2
3 4
5 7
6 8

output:

31680

result:

ok answer is '31680'