Submission #165406

#TimeUsernameProblemLanguageResultExecution timeMemory
165406Atill83Geppetto (COCI15_geppetto)C++14
80 / 80
86 ms1260 KiB
#include <bits/stdc++.h> #define ff first #define ss second #define endl '\n' using namespace std; const long long INF = (long long) 1e18; const int mod = (int) 1e9+7; const int MAXN = (int) 2e6+5; typedef long long ll; typedef unsigned long long ull; typedef pair<int,int> pii; typedef pair<ll,ll> pll; ll n, m; bool can[25][25]; bool dp[MAXN]; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr);cout.tie(nullptr); #ifdef Local freopen("../IO/int.txt","r",stdin); freopen("../IO/out.txt","w",stdout); #endif cin>>n>>m; for(int i = 0; i < m; i++){ int a, b; cin>>a>>b; can[a - 1][b - 1] = 1; can[b - 1][a - 1] = 1; } dp[0] = 1; int ans = 0; for(int i = 0; i < (1<<n); i++){ int cikari = (i & -i); int yer = 0; int tmp = cikari; while(tmp){ tmp /= 2; yer++; } yer--; bool cn = 1; for(int j = 0; j < n; j++){ if(((1<<j) & i) == 0){ continue; } if(can[j][yer]){ cn = 0; break; } } //cout<<i<<" "<<(i^cikari)<<endl; if(cn == 0){ continue; } else if(dp[i^cikari]){ dp[i] = 1; //cout<<i<<endl; ans++; } } cout<<ans<<endl; #ifdef Local cout<<endl<<fixed<<setprecision(2)<<1000.0 * clock() / CLOCKS_PER_SEC<< " milliseconds "; #endif }
#Verdict Execution timeMemoryGrader output
Fetching results...