Submission #1593543


Source Code Expand

#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include <stack>
#include <unordered_set>
#include <numeric>

using namespace std;
#define INF 99999
#define _GLIBCXX_DEBUG
#define REP(i,n) for(int i=0;i<(int)n;++i)
#define REPS(i,a,n) for(int i=(a);i<(int)n;++i)
#define FOR(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i)
#define ALL(c) (c).begin(), (c).end()
#define fi first
#define se second
typedef vector<int> vint;
typedef pair<int,int> pint;
typedef vector<pint> vpint;


int main() {
    cin.tie(0);
    ios::sync_with_stdio(false);

    int N, M;
    cin >> N >> M;
    vint a(M);
    vint b(M);
    REP(i, M) cin >> a[i] >> b[i];

    int adj[N][N];
    REP(i, N)REP(j, N)adj[i][j] = 0;

    REP(i, M){
        adj[a[i]-1][b[i]-1] = 1;
        adj[b[i]-1][a[i]-1] = 1;
    }

    int univ = (1 << N) - 1;
    int dp[1 << N][N];

    REP(S, 1 << N){
        REP(v, N){
            dp[S][v] = 0;
        }
    }
    dp[1][0] = 1;

    REPS(S, 2, (1 << N)+1) REP(v, N){
        int S2 = S & (univ ^ (1 << v)); // S \ {v}
        dp[S][v] = 0;
        REP(u, N) {
            if (((1 << u) & S2) && adj[u][v]){
                dp[S][v] += dp[S2][u];
            }
        }
    }

//    REP(S, 1 << N){
//        REP(v, N){
//            cout << dp[S][v] << " ";
//        }
//        cout << endl;
//    }

    int ans = 0;
    REP(u, N){
        ans += dp[univ][u];
    }
    cout << ans;
}

Submission Info

Submission Time
Task C - One-stroke Path
User sumsum88
Language C++14 (GCC 5.4.1)
Score 300
Code Size 1513 Byte
Status AC
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 2
AC × 15
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All sample_01.txt, sample_02.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
subtask_1_01.txt AC 1 ms 256 KB
subtask_1_02.txt AC 1 ms 256 KB
subtask_1_03.txt AC 1 ms 256 KB
subtask_1_04.txt AC 1 ms 256 KB
subtask_1_05.txt AC 1 ms 256 KB
subtask_1_06.txt AC 1 ms 256 KB
subtask_1_07.txt AC 1 ms 256 KB
subtask_1_08.txt AC 1 ms 256 KB
subtask_1_09.txt AC 1 ms 256 KB
subtask_1_10.txt AC 1 ms 256 KB
subtask_1_11.txt AC 1 ms 256 KB
subtask_1_12.txt AC 1 ms 256 KB
subtask_1_13.txt AC 1 ms 256 KB