제출 #884550

#제출 시각아이디문제언어결과실행 시간메모리
884550vjudge1Kronican (COCI16_kronican)C++17
0 / 100
1338 ms8808 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int mod = 1e9 + 7; const int maxn = 21; const int infinito = 1e9; int n,k; int v[maxn][maxn]; int dp[1<<maxn]; int contaum(int g){ int x =0; while(g > 0){ x++; g = g - (g&(-g)); } return x; } signed main(){ cin >> n >> k; for(int i = 0; i < n; i++){ for(int y = 0; y < n; y++){ cin >> v[i][y]; } } dp[0] = 0; for(int i = 1; i < (1<<n); i++){ int uns = contaum(i); if(uns <= k){ dp[i] = 0; } else{ //cout << i << " "; dp[i] = infinito; for(int y = 0; y < n; y++){ for(int j = 0; j < n; j++){ if(j != y){ //cout << y << " " << j << " " << (i&(1<<j)) << " " << (i&(1<<y)) << endl; if(((i&(1<<j)) >= 1) && ((i&(1<<y)) >= 1)){ //cout << "oi" << endl; dp[i] = min(dp[i], dp[i^(1<<y)] + v[y][j]); } } } } } } cout << dp[(1<<n) - 1] << endl; return 1; }
#Verdict Execution timeMemoryGrader output
Fetching results...