ZOJ-1524
来源:互联网 发布:ubuntu16 更换软件源 编辑:程序博客网 时间:2024/06/16 21:20
又是DP,没有想像那么简单。。开始天真地直接硬搞,连sample的数据都过不了。。后来改了改算法,把最优解的最大商品下标保存下来,下次取的商品不能和前面最优结构最大下标相同,简单数据可以过,但是真实数据非常大,有几组数据这样是过不了。。算法有问题,后来仔细研究了一组数据,发现了存在的问题,尝试反向遍历DP,竟然过了。。原理的理解不是很透彻,多刷些DP加深理解吧。。网上搜了搜其他人的代码,感觉自己的应该是最简洁的了,时间和空间都不大,小得瑟一下
#include<stdio.h>#include<limits.h>int main(){int m, n, a[101];double dp[101];while (scanf("%d %d", &m, &n), m || n){int i, j, k;double p;for (i = 1; i <= m; i++){scanf("%d", &a[i]);dp[i] = INT_MAX;}dp[0] = 0;for (j = 1; j <= n; j++){scanf("%d %lf", &k, &p);//注意一定要从反向遍历,正向遍历就WAfor (i = m; i > 0; i--)if (a[i] == k && dp[i - 1] != INT_MAX && dp[i - 1] + p < dp[i])dp[i] = dp[i - 1] + p;}if (dp[m] != INT_MAX)printf("%.2lf\n", dp[m]);elseputs("Impossible");}return 0;}
0 0
- ZOJ-1524
- ZOJ 1524 Supermarket
- ZOJ 1524 Supermarket
- zoj 1524 - Supermarket
- zoj 1524 Supermarket
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- dijkstra求路径
- Python<6>if条件测试
- c11_3.老鼠在菜园出口处遇见一只猫"¤",吓得往回逃,沿着阶梯状路线逃到入口处。
- struts2 文件上传 和 ServletFileUpload的矛盾
- 从Java代码到Java堆---Java代码内存使用情况的深入见解
- ZOJ-1524
- 批处理文件启动或停止服务
- Smack XmppConnect分析
- hbase集群启动后regionserver拒绝访问
- weka中使用Liblinear
- 九度 1138
- WebView
- JavaSE12_序列化
- java GC总结