ZOJ 1524 Supermarket
来源:互联网 发布:java打印数字菱形 编辑:程序博客网 时间:2024/05/16 02:53
动态规划
F[i][j]:列表上第i个物品和supermarket里面第j个商品。此时可以花的最小费用。
a[i] == b[j] F[i][j] = min(F[i][j-1], F[i-1][j-1] + p[j])
a[i] != b[j] F[i][j] = F[i][j-1]
初始化为最大值inf
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define N 100002#define M 102#define inf 1e10int a[M], b[N], n, m;double p[N], f[2][N];int main() { while (scanf("%d%d", &m, &n) == 2 && n+m) { for (int i=1; i<=m; i++) scanf("%d", &a[i]); int cur = 1; f[cur][0] = inf; for (int i=1; i<=n; i++) { scanf("%d%lf", &b[i], &p[i]); if (b[i] == a[1]) f[cur][i] = min(f[cur][i-1], p[i]); else f[cur][i] = f[cur][i-1]; } for (int i=2; i<=m; i++) { cur = 1 - cur; for (int j=0; j<=n; j++) f[cur][j] = inf; for (int j=1; j<=n; j++) { if (a[i] == b[j]) f[cur][j] = min(f[cur][j-1], f[1-cur][j-1]+p[j]); else f[cur][j] = f[cur][j-1]; } } if (f[cur][n] < inf) printf("%.2lf\n", f[cur][n]); else printf("Impossible\n"); } return 0;}
- ZOJ 1524 Supermarket
- ZOJ 1524 Supermarket
- zoj 1524 - Supermarket
- zoj 1524 Supermarket
- zoj 1731 Supermarket
- Supermarket
- Supermarket
- Supermarket
- Supermarket
- Supermarket
- Supermarket
- Supermarket
- Supermarket
- Supermarket Equipment
- pku1456 Supermarket
- zoj1731-Supermarket
- POJ1456 Supermarket
- poj1456 - Supermarket
- GIT标签
- 问题七十九:Armstrong数(续)
- generated file: '../../build/vs71/release/lib_json\json_writer.asm': No such file or directory
- java高级工程师--------nosql和关系型数据库的重点知识
- VC 2012 中调用WebBrowser简单的实现过程(图解过程)
- ZOJ 1524 Supermarket
- httpInvoker获取客户端request
- HDOJ 2602 Bone Collector (01背包)
- android.util.AndroidRuntimeException: You cannot combine custom titles with other title features
- install4j 打包程序,带入JMF
- 黑马韩前成linux从入门到精通之UNIX发展史
- CXimage
- PHP5.4.14安装配置步骤
- linux 一些命令