POJ 3628 Bookshelf 2 题解
来源:互联网 发布:网络信息安全大会 编辑:程序博客网 时间:2024/06/16 10:15
本题解法很多,因为给出的数据特殊性故此可以使用DFS和BFS,也可以使用01背包DP思想来解。
因为一般大家都使用DFS,这里使用很少人使用的BFS,缺点是比DFS更加耗内存,不过优点是速度比DFS快。
当然也比DFS难写点:
int N, B;int Height[21];inline int mMin(int a, int b) { return a > b? b : a; }inline int mMax(int a, int b) { return a < b? b : a; }int bfs(){vector<int> vStk;vStk.push_back(0);int id = 0;int mh = INT_MAX;while (id < N){for (int i = (int)vStk.size() - 1; i >= 0 ; i--){int h = vStk[i] + Height[id];if (h >= B) mh = mMin(mh, h-B);vStk.push_back(h);}//缺点,会消耗大量的内存,最后vector会非常大,优点,速度比dfs快id++;}return mh;}int main(){while (scanf("%d %d", &N, &B) != EOF){for (int i = 0; i < N; i++){scanf("%d", &Height[i]);}printf("%d\n", bfs());}return 0;}
1 0
- POJ 3628 Bookshelf 2 题解
- POJ 3628 - Bookshelf 2
- POJ 3628 - Bookshelf 2
- POJ 3628 Bookshelf 2
- poj-3628-Bookshelf 2
- poj 3628 Bookshelf 2
- POJ 3628 Bookshelf 2
- POJ 3628 Bookshelf 2
- poj 3628 Bookshelf 2
- POJ 3628-Bookshelf 2
- POJ - 3628 Bookshelf 2
- POJ 3628 Bookshelf 2
- poj 3628 Bookshelf 2
- POJ 3628 Bookshelf 2
- POJ 3628 Bookshelf 2
- POJ 3628 Bookshelf 2(背包)
- poj 3628 Bookshelf 2 背包
- POJ 3628 Bookshelf 2 G++
- 简单目录结构Makefile
- 浅析Linux字符设备驱动程序内核机制
- Handler的实现原理
- HTML5 音乐播放代码
- Windows 7下VS2008升级补丁
- POJ 3628 Bookshelf 2 题解
- 【Java】Upload file to web services
- 华为机试-将整数倒序输出,剔除重复数据
- Mybatis3.2.6+oracle例子
- 安装Django环境(nginx+uwsgi + mysql)
- OCP-1Z0-051-题目解析-第14题
- Iterator和Enumeration比较
- 40 个很有用的 Mac OS X Shell 脚本和终端命令
- 浅谈C++多态性