답안 #81739

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
81739 2018-10-26T12:01:11 Z ngot23 Kronican (COCI16_kronican) C++11
0 / 100
241 ms 8896 KB
#include<bits/stdc++.h>
#define rep(i, a, b) for(int i=(a) ; i<=(b) ; ++i)
#define Task ""
using namespace std;
const int N=21;
int dp[1ll<<N], c[N][N], n, k, luu[N], dem;

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    //freopen(Task".inp", "r", stdin);
    //freopen(Task".out", "w", stdout);
    cin >> n >> k;
    rep(i, 1, n)
        rep(j, 1, n) cin >> c[i][j];
    memset(dp, 0x32, sizeof dp);
    rep(i, 0, (1ll<<n)-1) {
        if(__builtin_popcount(i)<=k) dp[i]=0;
    }
    rep(i, 0, (1ll<<n)-1) {
        int num=__builtin_popcount(i);
        if(num<=k) continue;
        dem=0;
        rep(j, 1, n) {
            if((i>>(j-1))&1) luu[++dem]=j;
        }
        rep(j, 1, dem) {
            int state=i^(1ll<<(luu[j]-1));
            int xx=1000000000;
            rep(k1, 1, dem) {
                if(j==k1) continue;
                xx=min(xx, c[j][k1]);
            }
            dp[i]=min(dp[i], dp[state]+xx);
        }
    }
    cout << dp[(1ll<<n)-1];
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 9 ms 8568 KB Output isn't correct
2 Incorrect 9 ms 8704 KB Output isn't correct
3 Incorrect 8 ms 8704 KB Output isn't correct
4 Incorrect 9 ms 8704 KB Output isn't correct
5 Incorrect 18 ms 8712 KB Output isn't correct
6 Incorrect 14 ms 8712 KB Output isn't correct
7 Incorrect 26 ms 8720 KB Output isn't correct
8 Incorrect 32 ms 8736 KB Output isn't correct
9 Incorrect 241 ms 8896 KB Output isn't correct
10 Incorrect 39 ms 8896 KB Output isn't correct