博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
景中人
阅读量:4652 次
发布时间:2019-06-09

本文共 2180 字,大约阅读时间需要 7 分钟。

题目

1354114-20181127082027649-1294825261.png

1354114-20181127082109942-1766957526.png

题解

先将横坐标离散化,下文提到的横坐标都是离散化后的值。

接着考虑dp

\(dp_{i, j}\)表示横坐标为\(i\)\(j\)区间内的答案。

于是有两种转移

  1. 找一个横坐标, 使得没有任意一个矩形穿过它, 枚举转移即可。
  2. 找一个不到横坐标,使得没有任意一个矩形, 那么直接选横坐标范围为[i,j]的矩形,于是把这个矩形的高度设到最高即可\((\)以我的语文水平可能描述的不是很清楚, 具体看代码\()\)

代码

#include 
#include
#include
#include
#include
using namespace std;const int INF = 0x7F7F7F7F;const int N = 110;int x[N], y[N];int maxy[N];int num[N], total;int f[N][N], d[N];int main(){ int T; scanf("%d", &T); while (T--) { int n, s; scanf("%d %d", &n, &s); for (int i = 1; i <= n; i++) scanf("%d %d", &x[i], &y[i]); total = 0; for (int i = 1; i <= n; i++) num[++total] = x[i]; sort(num + 1, num + 1 + total); total = unique(num + 1, num + 1 + total) - num - 1; for (int i = 1; i <= n; i++) x[i] = lower_bound(num + 1, num + 1 + total, x[i]) - num; memset(maxy, 0, sizeof(int) * (total + 1)); for (int i = 1; i <= n; i++) maxy[x[i]] = max(maxy[x[i]], y[i]); for (int i = 1; i <= total; i++) for (int j = 1; j + i - 1 <= total; j++) { f[j][j + i - 1] = INF; int maxh = 0; for (int k = j; k <= i + j - 1; k++) maxh = max(maxh, maxy[k]); for (int k = j; k < i + j - 1; k++) f[j][j + i - 1] = min(f[j][j + i - 1], f[j][k] + f[k + 1][j + i - 1]); if ((num[j + i - 1] - num[j]) <= s / maxh) { f[j][j + i - 1] = 1; continue; } memset(d, 127, sizeof(d)); int lim = s / (num[j + i - 1] - num[j]); d[j - 1] = 0; for (int k = j; k <= j + i - 1; k++) { if (maxy[k] <= lim) d[k] = d[k - 1]; else for (int l = j; l <= k; l++) d[k] = min(d[k], f[l][k] + d[l - 1]); } f[j][j + i - 1] = min(f[j][j + i - 1], d[j + i - 1] + 1); } printf("%d\n", f[1][total]); } return 0;}

转载于:https://www.cnblogs.com/2016gdgzoi509/p/10024320.html

你可能感兴趣的文章
利用RELK进行日志收集
查看>>
跳转页面的三种方式
查看>>
如何使用Python创建可视化对象
查看>>
linux下观看b站视频,解决字体乱码
查看>>
2016,加油,奋斗
查看>>
关于Cocos2d-x中坐标系的种类和转换
查看>>
吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-cloud...
查看>>
吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-download...
查看>>
吴裕雄--天生自然 高等数学学习:曲面及其方程
查看>>
吴裕雄--天生自然 高等数学学习:对面积的曲面积分
查看>>
网页字体知识
查看>>
css
查看>>
iOS 如何自定义NavigationBar的高度
查看>>
HUST team contest #E A Mountain Road||poj 3846 (dp)
查看>>
密码破解之Hydra
查看>>
linux基础之vim编辑器
查看>>
20145202 《信息安全系统设计基础》第3周学习总结
查看>>
iOS-----使用AVAudioPlayer播放音乐
查看>>
Dom4j操作XML
查看>>
《剑指offer》第三十题(包含min函数的栈)
查看>>