Submission #122905

# Submission time Handle Problem Language Result Execution time Memory
122905 2019-06-29T13:49:57 Z miguel Paths (BOI18_paths) C++14
100 / 100
570 ms 100484 KB
#include<bits/stdc++.h>
using namespace std;
#define rc(x) return cout<<x<<endl,0
#define pb push_back
#define dbg(x) cout << #x << '=' << x << '\n';
#define ll long long
#define sz size()
#define x first
#define y second
#define pi pair <int, int>
#define pii pair <pi, int>
#define vi vector <int>
const ll mod = 1000000007;
#define int ll
int n, m, k, c[300001], dp[300001][32];
vector <int> g[300001];

int gcd(int a, int b){
    if(a==0) return b;
    else return gcd(b%a, a);
}

int32_t main(){
    ios_base :: sync_with_stdio(0); cin.tie(); cout.tie();
    cin>>n>>m>>k;
    for(int i=1; i<=n; i++){
        cin>>c[i];
        c[i]--;
    }
    for(int i=1; i<=m; i++){
        int x, y;
        cin>>x>>y;
        g[x].pb(y);
        g[y].pb(x);
    }
    for(int i=1; i<=n; i++) dp[i][(1<<c[i])]=1;
    for(int mask=1; mask<(1<<k); mask++){
        for(int i=1; i<=n; i++){
            if(dp[i][mask]==0) continue;
            for(int j: g[i]){
                if(((1<<c[j])&mask)) continue;
                else dp[j][(mask|(1<<c[j]))]+=dp[i][mask];
            }
        }
    }
    int ans=0;
    for(int mask=1; mask<(1<<k); mask++){
        for(int i=1; i<=n; i++){
            //if(dp[i][mask]) cout<<i<<" "<<mask<<" "<<dp[i][mask]<<endl;
            ans+=dp[i][mask];
        }
    }
    cout<<ans-n;
}
# Verdict Execution time Memory Grader output
1 Correct 8 ms 7544 KB Output is correct
2 Correct 10 ms 7416 KB Output is correct
3 Correct 10 ms 7416 KB Output is correct
4 Correct 8 ms 7416 KB Output is correct
5 Correct 8 ms 7416 KB Output is correct
6 Correct 8 ms 7416 KB Output is correct
7 Correct 8 ms 7416 KB Output is correct
8 Correct 8 ms 7416 KB Output is correct
9 Correct 8 ms 7544 KB Output is correct
10 Correct 8 ms 7416 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 120 ms 18680 KB Output is correct
2 Correct 92 ms 16888 KB Output is correct
3 Correct 442 ms 99960 KB Output is correct
4 Correct 164 ms 26728 KB Output is correct
5 Correct 155 ms 26548 KB Output is correct
6 Correct 351 ms 71948 KB Output is correct
7 Correct 481 ms 99960 KB Output is correct
8 Correct 505 ms 100480 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 8 ms 7544 KB Output is correct
2 Correct 10 ms 7416 KB Output is correct
3 Correct 10 ms 7416 KB Output is correct
4 Correct 8 ms 7416 KB Output is correct
5 Correct 8 ms 7416 KB Output is correct
6 Correct 8 ms 7416 KB Output is correct
7 Correct 8 ms 7416 KB Output is correct
8 Correct 8 ms 7416 KB Output is correct
9 Correct 8 ms 7544 KB Output is correct
10 Correct 8 ms 7416 KB Output is correct
11 Correct 120 ms 18680 KB Output is correct
12 Correct 92 ms 16888 KB Output is correct
13 Correct 442 ms 99960 KB Output is correct
14 Correct 164 ms 26728 KB Output is correct
15 Correct 155 ms 26548 KB Output is correct
16 Correct 351 ms 71948 KB Output is correct
17 Correct 481 ms 99960 KB Output is correct
18 Correct 505 ms 100480 KB Output is correct
19 Correct 121 ms 18572 KB Output is correct
20 Correct 95 ms 16888 KB Output is correct
21 Correct 505 ms 99960 KB Output is correct
22 Correct 165 ms 26744 KB Output is correct
23 Correct 157 ms 26628 KB Output is correct
24 Correct 336 ms 72004 KB Output is correct
25 Correct 493 ms 100012 KB Output is correct
26 Correct 456 ms 100484 KB Output is correct
27 Correct 114 ms 16964 KB Output is correct
28 Correct 155 ms 20876 KB Output is correct
29 Correct 570 ms 99992 KB Output is correct
30 Correct 377 ms 58972 KB Output is correct
31 Correct 396 ms 59144 KB Output is correct
32 Correct 569 ms 100016 KB Output is correct
33 Correct 8 ms 7416 KB Output is correct
34 Correct 8 ms 7416 KB Output is correct
35 Correct 8 ms 7416 KB Output is correct
36 Correct 8 ms 7544 KB Output is correct
37 Correct 8 ms 7416 KB Output is correct
38 Correct 8 ms 7416 KB Output is correct
39 Correct 8 ms 7416 KB Output is correct
40 Correct 8 ms 7416 KB Output is correct
41 Correct 8 ms 7416 KB Output is correct
42 Correct 8 ms 7416 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 8 ms 7416 KB Output is correct
2 Correct 53 ms 10400 KB Output is correct
3 Correct 37 ms 10364 KB Output is correct
4 Correct 115 ms 38136 KB Output is correct
5 Correct 100 ms 38508 KB Output is correct
6 Correct 185 ms 38136 KB Output is correct
7 Correct 41 ms 10360 KB Output is correct
8 Correct 149 ms 38136 KB Output is correct
9 Correct 116 ms 38504 KB Output is correct
10 Correct 131 ms 38252 KB Output is correct
11 Correct 111 ms 24048 KB Output is correct
12 Correct 117 ms 31208 KB Output is correct
13 Correct 112 ms 24168 KB Output is correct
14 Correct 167 ms 38136 KB Output is correct
15 Correct 148 ms 38140 KB Output is correct
16 Correct 8 ms 7416 KB Output is correct
17 Correct 8 ms 7416 KB Output is correct
18 Correct 9 ms 7544 KB Output is correct
19 Correct 8 ms 7416 KB Output is correct
20 Correct 8 ms 7416 KB Output is correct
21 Correct 8 ms 7420 KB Output is correct
22 Correct 8 ms 7416 KB Output is correct
23 Correct 8 ms 7416 KB Output is correct
24 Correct 8 ms 7416 KB Output is correct
25 Correct 8 ms 7416 KB Output is correct