LightOJ - 1119 Pimp My Ride(状态压缩)
来源:互联网 发布:多商网淘宝代销赚钱吗 编辑:程序博客网 时间:2024/05/22 02:15
题目大意:给你N个工作,给出每个工作所需要的付出和在完成该工作之前,如果完成了其他工作所需要的额外付出,问如何做完所有工作,才能使付出达到最小
解题思路:只有14个,直接状态压缩,接着就是转移了
#include <cstdio>#include <cstring>#include <queue>using namespace std;const int N = 20;const int S = (1 << 14) + 10;int val[N][N];int dp[S];int n, cas = 1;void init() { scanf("%d", &n); for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) { scanf("%d", &val[i][j]); }}void solve() { queue<int> Q; memset(dp, 0x3f, sizeof(dp)); for (int i = 0; i < n; i++) { Q.push(1 << i); dp[1 << i] = val[i][i]; } int all = (1 << n) - 1; while (!Q.empty()) { int s = Q.front(); Q.pop(); if (s == all) continue; for (int i = 0; i < n; i++) { if (s & (1 << i)) continue; int tmp = val[i][i]; for (int j = 0; j < n; j++) if (s & (1 << j)) tmp += val[i][j]; if (dp[s | (1 << i)] > dp[s] + tmp) { dp[s | (1 << i)] = dp[s] + tmp; Q.push(s | (1 << i)); } } } printf("Case %d: %d\n", cas++, dp[all]);}int main() { int test; scanf("%d", &test); while (test--) { init(); solve(); } return 0;}
0 0
- LightOJ - 1119 Pimp My Ride(状态压缩)
- HOJ 2317 Pimp My Ride(状态压缩DP)
- LightOJ1119-Pimp My Ride-状态dp
- poj 2490 Pimp My Ride
- Light oj 1119 - Pimp My Ride(状压dp)
- Light OJ 1119 Pimp My Ride (简单状压DP)
- Light OJ 1119 Pimp My Ride(状压DP)
- lightoj 1119 状态压缩DP
- lightoj 1086 状态压缩DP
- lightoj 1061 状态压缩DP
- lightoj 1092 状态压缩DP
- lightoj 1316 状态压缩求解汉密尔顿通路
- lightoj 1158 状态压缩+数位DP
- lightoj 1011 (状态压缩dp)
- lightoj 1018 (状态压缩DP)
- LightOJ - 1018 Brush (IV)(状态压缩DP)
- lightoj 1011 - Marriage Ceremonies(状态压缩dp)
- LightOJ 1018 Brush (IV)(状态压缩DP)
- 英语让路---2015年10月英语月总
- 一、WIN7下EasyUI环境IIS配置支持.json格式的文件
- RecyclerView的点击事件
- java 发展简史
- Java各种字符串连接方法性能比较
- LightOJ - 1119 Pimp My Ride(状态压缩)
- 约瑟夫环递归求解
- hdu 1049 Climbing Worm
- 常用设计模式之装饰模式
- cvStereoRectify 报错
- 面试总结+网上查阅的智力题
- win10(企业英文版)有关中文乱码 与 系统默认语言转换
- codevs2597团伙
- linux多线程编程--信号量和条件变量 唤醒丢失事件