如果两个矩形相交且不是包含关系,那么完全可以让它们不相交。

将坐标离散化后,设$f[i][j][k]$表示区间$[i,j]$纵坐标不小于$k$的部分的最优解。

对于$f[i][j][k]$,要么枚举分割线,分成两部分分别DP,要么放入一个尽量大的矩形,转化为子区间的问题。

时间复杂度$O(n^4)$。

#include<cstdio>
#include<algorithm>
#define N 110
int n,m,A,i,j,k,t,x,y,l,r,b[N],c[N],f[N][N][N];
struct P{int x,y;}a[N];
bool cmp(P a,P b){return a.x==b.x?a.y>b.y:a.x<b.x;}
inline void up(int&a,int b){if(a>b)a=b;}
int main(){
scanf("%d%d",&n,&A);
for(i=1;i<=n;i++)scanf("%d%d",&a[i].x,&a[i].y);
std::sort(a+1,a+n+1,cmp);
for(i=1;i<=n;i++)if(i==1||a[i].x!=a[i-1].x)a[++m]=a[i];
for(i=1;i<=m;i++)b[i]=a[i].y;
std::sort(b+1,b+m+1);
for(i=1;i<=m;i++)for(j=1;j<=m;j++)if(a[i].y==b[j]){c[i]=j;break;}
for(i=m;i;i--)for(j=i;j<=m;j++)for(k=m;k;k--){
for(f[i][j][k]=N,t=i;t<j;t++)up(f[i][j][k],f[i][t][k]+f[t+1][j][k]);
for(l=i;l<=j;l++)if(c[l]>=k)break;
for(r=j;r>=i;r--)if(c[r]>=k)break;
if(l>r){f[i][j][k]=0;continue;}
if(l==r){f[i][j][k]=1;continue;}
x=a[r].x-a[l].x,y=A/x;
for(l=i;l<=j;l++)if(a[l].y>y)break;
for(r=j;r>=i;r--)if(a[r].y>y)break;
for(x=N,t=l;t<=r;t++)if(a[t].y>y&&c[t]<x)x=c[t];
up(f[i][j][k],f[l][r][x]+1);
}
return printf("%d",f[1][m][1]),0;
}

  

BZOJ1766 : [Ceoi2009]photo的更多相关文章

  1. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  2. 在 Windows 10 中启用 Windows Photo Viewer

    本文版权归cxun所有,如有转载请注明出处与本文链接,谢谢!原文地址:http://www.cnblogs.com/cxun/p/4727323.html 不知大家在使用了Win10之后有没有这样感受 ...

  3. Autodesk的照片建模云服务—Autodesk ReCap 360 photo 的测试数据

    之前已经给大家介绍过了Autodesk的照片建模云服务—Autodesk ReCap 360 photo, 你也可以自己登录到http://recap360.autodesk.com/ 自己试一试. ...

  4. 如何申请Autodesk ReCap 360 photo的云币(Cloud Credit)

    在之前的博客中我介绍过Autodesk的照片建模云服务—Autodesk ReCap 360 photo,通过Autodesk ReCap 360 photo,你可以非常方便的通过照片生成三维模型.如 ...

  5. Autodesk的照片建模云服务—Autodesk ReCap 360 photo

    现实捕捉技术方兴未艾,简单的讲现实捕捉技术就是把现实中的现状信息数字化到计算机中以便做进一步的处理.对于不同的应用目的会有不同的捕捉设备,工程或传媒娱乐行业中经常用到的肯定就是三维模型了.那如何得到三 ...

  6. iOS开发之保存照片到系统相册(Photo Album)

    iOS开发之保存照片到系统相册(Photo Album) 保存照片到系统相册这个功能很多社交类的APP都有的,今天我们简单讲解一下,如何将图片保存到系统相册(Photo Album). 创建UIIma ...

  7. mongo里面根据对象字段的ID查询 db.Photo.find({'owner.$id':ObjectId('xxxx')}) , 并且使用forEach循环修改查询的数据

    var ones = db.Photo.find({'owner.$id':ObjectId("5344f0dab7c58e8e098b4567")}) db.Photo.find ...

  8. iOS - Photo Album 图片/相册管理

    前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIImagePickerController : UINavigationController <NSCod ...

  9. WordPress Pretty Photo插件‘hashrel’参数跨站脚本漏洞

    漏洞名称: WordPress Pretty Photo插件‘hashrel’参数跨站脚本漏洞 CNNVD编号: CNNVD-201311-405 发布时间: 2013-11-28 更新时间: 201 ...

随机推荐

  1. Android ADB命令大全(通过ADB命令查看wifi密码、MAC地址、设备信息、操作文件、查看文件、日志信息、卸载、启动和安装APK等)

    ADB很强大,记住一些ADB命令有助于提高工作效率. 获取序列号: adb get-serialno 查看连接计算机的设备: adb devices 重启机器: adb reboot 重启到bootl ...

  2. FOJ 1075

    #include<stdio.h> #include<iostream> using namespace std; ]={,}; ]={}; void func() { ,fl ...

  3. 一些Linux的路径

    系统引导时启动        /etc/rc.d/rc.local

  4. mybatis3 :insert返回插入的主键(selectKey)

    Mysql: 主键自增长. 加上:keyProperty="id"就可以获得了. <insert id="insert" parameterType=&q ...

  5. 开博一周总结与随谈[thinking of writing blog for one week]

    8天前,就是5月19号,突发奇想,觉得应该开个博客记录下自己的学习笔记和心得,更重要的是做个自我梳理和总结.大致看了下国内的博客,最后选定cnblogs.之所以选则cnblogs是因为平时搜到不少好文 ...

  6. python时间转换

    #设a为字符串 import time a = "2011-09-28 10:00:00" #中间过程,一般都需要将字符串转化为时间数组 time.strptime(a,'%Y-% ...

  7. 【动态规划】拦截导弹_dilworth定理_最长递增子序列

    问题 K: [动态规划]拦截导弹 时间限制: 1 Sec  内存限制: 256 MB提交: 39  解决: 10[提交][状态][讨论版] 题目描述 张琪曼:“老师,修罗场是什么?” 墨老师:“修罗是 ...

  8. Bootstrap分页插件:bootstrap-paginator

    今天和大家分享一个Bootstrap的分页插件:bootstrap-paginator. 插件地址: https://github.com/lyonlai/bootstrap-paginator 先看 ...

  9. 泥泞的道路(codevs 1183)

    题目描述 Description CS有n个小区,并且任意小区之间都有两条单向道路(a到b,b到a)相连.因为最近下了很多暴雨,很多道路都被淹了,不同的道路泥泞程度不同.小A经过对近期天气和地形的科学 ...

  10. hrbustoj 1161:Leyni(树状数组练习)

    LeyniTime Limit: 3000 MS Memory Limit: 65536 KTotal Submit: 260(59 users) Total Accepted: 80(55 user ...