답안 #413824

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
413824 2021-05-29T14:47:46 Z ak2006 Paths (BOI18_paths) C++14
23 / 100
3000 ms 98984 KB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vi = vector<int>;
using vvi = vector<vi>;
using vl = vector<ll>;
using vvl = vector<vl>;
using vb = vector<bool>;
using vvb = vector<vb>;
using vc = vector<char>;
using vvc = vector<vc>;
#define fast ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define pb push_back
void setIO()
{
	fast;
}
int n = 3e5 + 5,m = 3e5 + 5,k = 5;
vvi adj(n);
vi col(n);
vvl dp(n,vl(1<<k));
void dfs(int u,int mask)
{
	int mask2 = mask |  (1<<col[u]);
	dp[u][mask] = 1;
	for (int v:adj[u]){
		if ((mask2 & (1<<col[v])))continue;
		dfs(v,mask2);
		dp[u][mask] += dp[v][mask2];
	}
}
int main()
{
	setIO();
	cin>>n>>m>>k;
	for (int i = 1;i<=n;i++){cin>>col[i];col[i]--;}
	while (m--){
		int u,v;
		cin>>u>>v;
		adj[u].pb(v),adj[v].pb(u);
	}
	ll ans = 0;
	for (int i = 1;i<=n;i++){
		for (int mask = 0;mask < (1<<k);mask++){
			if (mask & (1<<col[i]))continue;
			dfs(i,mask);
			if (mask == 0)ans += dp[i][0] - 1;
		}
	}
	cout<<ans;
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 61 ms 95300 KB Output is correct
2 Correct 70 ms 95364 KB Output is correct
3 Correct 67 ms 95472 KB Output is correct
4 Correct 59 ms 95300 KB Output is correct
5 Correct 59 ms 95300 KB Output is correct
6 Correct 59 ms 95316 KB Output is correct
7 Correct 59 ms 95424 KB Output is correct
8 Correct 59 ms 95344 KB Output is correct
9 Correct 63 ms 95392 KB Output is correct
10 Correct 59 ms 95336 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3068 ms 98984 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 61 ms 95300 KB Output is correct
2 Correct 70 ms 95364 KB Output is correct
3 Correct 67 ms 95472 KB Output is correct
4 Correct 59 ms 95300 KB Output is correct
5 Correct 59 ms 95300 KB Output is correct
6 Correct 59 ms 95316 KB Output is correct
7 Correct 59 ms 95424 KB Output is correct
8 Correct 59 ms 95344 KB Output is correct
9 Correct 63 ms 95392 KB Output is correct
10 Correct 59 ms 95336 KB Output is correct
11 Execution timed out 3068 ms 98984 KB Time limit exceeded
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 60 ms 95408 KB Output is correct
2 Execution timed out 3065 ms 96592 KB Time limit exceeded
3 Halted 0 ms 0 KB -