Submission #1191191

#TimeUsernameProblemLanguageResultExecution timeMemory
1191191meisgoodPaths (BOI18_paths)C++20
53 / 100
255 ms157688 KiB
#include <bits/stdc++.h> using namespace std ; #define int long long int arr[100003] ; vector <int> adj[100003] ; int dp[10][100003][1<<5] ; signed main(){ int n,m,k,i,j ; cin >> n >> m >> k ; for (i = 1 ; i <= n ; i ++){ cin >> arr[i] ; arr[i]-- ; dp[0][i][1<<arr[i]]=1 ; } for (i = 0 ; i < m ; i ++){ int a,b ; cin >> a >> b ; adj[a].push_back(b) ; adj[b].push_back(a) ; } for (int ii = 1 ; ii <= 5 ; ii ++){ for (i = 1 ; i <= n ; i ++){ for (j = 0 ; j < (1<<k) ; j ++){ if (j&(1<<arr[i])){ for (auto a : adj[i]){ dp[ii][i][j]+=dp[ii-1][a][j^(1<<arr[i])] ; } } } } } int tt=0 ; for (int ii = 1 ; ii <= 5 ; ii ++) for (i = 1 ; i <= n ; i ++) for (j = 0 ; j < (1<<k) ; j ++) tt+=dp[ii][i][j] ; cout << tt << endl ; return 0 ; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...