首页 > 代码库 > lightoj 1119 - Pimp My Ride(状压dp)
lightoj 1119 - Pimp My Ride(状压dp)
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1119
题解:状压dp存一下车有没有被搞过的状态就行。
#include <iostream>#include <cstring>#include <cstdio>using namespace std;typedef long long ll;ll dp[1 << 15] , val[15][15];int main() { int t , Case = 0; scanf("%d" , &t); while(t--) { int n; scanf("%d" , &n); for(int i = 0 ; i < n ; i++) { for(int j = 0 ; j < n ; j++) { scanf("%lld" , &val[i][j]); } } for(int i = 0 ; i < (1 << n) ; i++) dp[i] = (ll)1234567 * (ll)1234567; dp[0] = 0; for(int i = 0 ; i < (1 << n) ; i++) { for(int j = 0 ; j < n ; j++) { if(i & (1 << j)) continue; else { ll sum = val[j][j]; for(int k = 0 ; k < n ; k++) { if(i & (1 << k)) { sum += val[j][k]; } } dp[i | (1 << j)] = min(dp[i | (1 << j)] , dp[i] + sum); } } } printf("Case %d: %lld\n" , ++Case , dp[(1 << n) - 1]); } return 0;}
lightoj 1119 - Pimp My Ride(状压dp)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。