【HDU4001】To Miss Our Children Time(LIS变形)
2016-01-04 21:20
351 查看
http://acm.hdu.edu.cn/showproblem.php?pid=4001
三种木板 每一种木板对放在其下面木板的长宽以及面积有不同的限制 求最大可以堆积的高度
简单的LIS变形 对每个值的比较改成相应种类木板的长宽面积比较就好了
感觉作为2011年大连网络赛的第一题还是很友善的 就是最长不下降子序列 没发现其他坑的地方。。。。
为什么2011年的网络赛做起来比2015年的顺利多了 表示不服。。。。。
三种木板 每一种木板对放在其下面木板的长宽以及面积有不同的限制 求最大可以堆积的高度
简单的LIS变形 对每个值的比较改成相应种类木板的长宽面积比较就好了
感觉作为2011年大连网络赛的第一题还是很友善的 就是最长不下降子序列 没发现其他坑的地方。。。。
为什么2011年的网络赛做起来比2015年的顺利多了 表示不服。。。。。
#include <cstdio> #include <algorithm> #include <iostream> using namespace std; const int maxn = 1010; struct Block{ int a, b, c, d; }block[maxn]; long long dp[maxn]; bool cmp(Block aa, Block bb); int main(){ int n; while(scanf("%d", &n)!=EOF && n){ for(int i = 0; i < n; ++i){ scanf("%d%d%d%d", &block[i].a, &block[i].b, &block[i].c, &block[i].d); if(block[i].a < block[i].b){ swap(block[i].a, block[i].b); } } sort(block, block+n, cmp); for(int i = 0; i < n; ++i){ dp[i] = block[i].c; for(int j = 0; j < i; ++j){ if(block[i].d == 0){ if(block[i].a >= block[j].a && block[i].b >= block[j].b){ dp[i] = max(dp[j]+block[i].c, dp[i]); } } else if(block[i].d == 1){ if(block[i].a>=block[j].a && block[i].b>=block[j].b && (block[i].a>block[j].a||block[i].b>block[j].b)){ dp[i] = max(dp[j]+block[i].c, dp[i]); } } else{ if(block[i].a > block[j].a && block[i].b > block[j].b){ dp[i] = max(dp[j]+block[i].c, dp[i]); } } } } long long ans = 0; for(int i = 0; i < n; ++i){ ans = max(ans, dp[i]); } cout << ans << endl; } return 0; } bool cmp(Block aa, Block bb){ if(aa.a == bb.a){ if(aa.b == bb.b){ return aa.d > bb.d; } return aa.b < bb.b; } return aa.a < bb.a; }
相关文章推荐
- java.util.ArrayList 源码
- Call to undefined function curl_init()
- app 2015
- C语言中static详解
- 实例7:实现仿Windows7图片预览窗格效果
- 业务逻辑实现方式选择
- 动态内存管理类
- HTML中的下拉列表 select
- 1.04
- 关于Storyboard
- SQL入门
- JAVA多线程机制之暂停、恢复和停止
- 一个sort命令统计hot query
- Sublime Text 2 - Unable to find git.exe 错误
- css006 文本格式化
- 数据结构 - 二叉树(重构 + 遍历)
- Codeforces Testing Round #12 B. Restaurant (贪心)
- 宅米优化
- 学习Android从0开始之基础篇(3)-视图组件之布局管理器
- 解决android.view.InflateException: Binary XML file line #8: Error inflating class