LightOJ 1037 - Agent 47(dp)
来源:互联网 发布:燃气水力计算软件 编辑:程序博客网 时间:2024/05/28 15:08
题目链接:LightOJ 1037 - Agent 47
代码
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = (1<<15) + 5;const int maxm = 20;const int inf = 0x3f3f3f3f;int N, H[maxm], dp[maxn];char ws[maxn][maxm], wp[maxm][maxm];void init () { scanf("%d", &N); for (int i = 0; i < N; i++) scanf("%d", &H[i]); for (int i = 0; i < N; i++) scanf("%s", wp[i]); for (int i = 0; i < N; i++) ws[0][i] = '1'; for (int i = 1; i < (1<<N); i++) { int v = i, u; for (u = 0; u < N; u++) if (i&(1<<u)) { v -= (1<<u); break; } for (int j = 0; j < N; j++) ws[i][j] = max(ws[v][j], wp[u][j]); }}int solve () { dp[0] = 0; for (int i = 1; i < (1<<N); i++) { dp[i] = inf; for (int j = 0; j < N; j++) if (i&(1<<j)) { int v = i - (1<<j); int k = ws[v][j] - '0'; dp[i] = min(dp[i], dp[v] + H[j] / k + (H[j] % k ? 1 : 0)); } } return dp[(1<<N)-1];}int main () { int cas; scanf("%d", &cas); for (int kcas = 1; kcas <= cas; kcas++) { init(); printf("Case %d: %d\n", kcas, solve()); } return 0;}
0 0
- lightoj 1037 - Agent 47 (状压DP)
- LightOJ 1037 - Agent 47(dp)
- LightOJ 1037 - Agent 47 (状压dp)
- LightOJ 1037 Agent 47(状压DP)
- Lightoj 1037 Agent 47(状压DP)
- Lightoj 1037 - Agent 47 详解(状压DP)
- lightoj 1037 Agent-47(状态压缩dp~)
- LightOJ - 1037 Agent 47(状压DP)
- LightOJ 1037 - Agent 47(状压DP)
- lightoj 1037 - Agent 47 状压DP
- lightoj 1037 - Agent 47 【状压dp】
- lightoj 1037 Agent 47
- LightOJ 1037 Agent 47
- lightoj 1037 - Agent 47
- 1037 - Agent 47(状压DP)
- Light-1037 Agent 47 DP
- Light oj 1037 - Agent 47(状压dp)
- Light OJ 1037 Agent 47 (状压DP)
- 第19讲 项目2-能对齐的数据
- LightOJ 1036 - A Refining Company(dp)
- eclipse的快捷键
- 黑站利器——中国菜刀
- iOS开发插件
- LightOJ 1037 - Agent 47(dp)
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(五)
- 读路遥《人生》有感
- Git & GitLab 使用及规范
- brutish mine 攻略补充
- LightOJ 1038 - Race to 1 Again(dp)
- Swift(十五、构造过程(2)及析构过程)
- spring整合hibernate和spring MVC
- 多备份为国产大飞机助推者恒润科技构建IT保护平台