BZOJ1766 : [Ceoi2009]photo
如果两个矩形相交且不是包含关系,那么完全可以让它们不相交。
将坐标离散化后,设$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的更多相关文章
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- 在 Windows 10 中启用 Windows Photo Viewer
本文版权归cxun所有,如有转载请注明出处与本文链接,谢谢!原文地址:http://www.cnblogs.com/cxun/p/4727323.html 不知大家在使用了Win10之后有没有这样感受 ...
- Autodesk的照片建模云服务—Autodesk ReCap 360 photo 的测试数据
之前已经给大家介绍过了Autodesk的照片建模云服务—Autodesk ReCap 360 photo, 你也可以自己登录到http://recap360.autodesk.com/ 自己试一试. ...
- 如何申请Autodesk ReCap 360 photo的云币(Cloud Credit)
在之前的博客中我介绍过Autodesk的照片建模云服务—Autodesk ReCap 360 photo,通过Autodesk ReCap 360 photo,你可以非常方便的通过照片生成三维模型.如 ...
- Autodesk的照片建模云服务—Autodesk ReCap 360 photo
现实捕捉技术方兴未艾,简单的讲现实捕捉技术就是把现实中的现状信息数字化到计算机中以便做进一步的处理.对于不同的应用目的会有不同的捕捉设备,工程或传媒娱乐行业中经常用到的肯定就是三维模型了.那如何得到三 ...
- iOS开发之保存照片到系统相册(Photo Album)
iOS开发之保存照片到系统相册(Photo Album) 保存照片到系统相册这个功能很多社交类的APP都有的,今天我们简单讲解一下,如何将图片保存到系统相册(Photo Album). 创建UIIma ...
- mongo里面根据对象字段的ID查询 db.Photo.find({'owner.$id':ObjectId('xxxx')}) , 并且使用forEach循环修改查询的数据
var ones = db.Photo.find({'owner.$id':ObjectId("5344f0dab7c58e8e098b4567")}) db.Photo.find ...
- iOS - Photo Album 图片/相册管理
前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIImagePickerController : UINavigationController <NSCod ...
- WordPress Pretty Photo插件‘hashrel’参数跨站脚本漏洞
漏洞名称: WordPress Pretty Photo插件‘hashrel’参数跨站脚本漏洞 CNNVD编号: CNNVD-201311-405 发布时间: 2013-11-28 更新时间: 201 ...
随机推荐
- The server does not support version 3.0 of the J2EE Web module specification
1.错误: 在eclipse中使用run->run on server的时候,选择tomcat6会报错误:The server does not support version 3.0 of t ...
- 破解TP-Link路由-嗅探PPPoE拨号密码
如果你平时都使用路由器直接上网,那么你还记得你的宽带(ADSL)帐户名和密码吗?忘记密码后又该如何找回呢?别急,本文带你一同找回遗忘的ADSL密码.1.安全性较差的路由器(例如腾达的某些路由器):这里 ...
- 让Linux下的打印机hp1020、hp p1008自动加载固件
前言: 前段时间,处理公司打印机服务器Linux化工作.遇到问题如下:hp1020.hp1008断电后不能继续打印.而其他打印机在连接Linux打印机的情况下,断电后也能正常打印. 鉴于此情况,我搜寻 ...
- JavaScript 在页面上显示数字时钟
显示一个钟表 拓展JavaScript计时:http://www.w3school.com.cn/js/js_timing.asp setTimeout() 方法会返回某个值.在下面的语句中,值被储存 ...
- 对 Linux 新手非常有用的 20 个命令
参考:http://www.oschina.net/translate/useful-linux-commands-for-newbies 英文原文:http://www.tecmint.com/us ...
- Spring配置JNDI的解决方案
我的配置环境是:Spring + Tomcat + MySql 说明: 1. $TOMCAT_HOME代表Tomcat的安装目录. 第一步:在Tomcat的$TOMCAT_HOME/conf/cont ...
- MFC 密码框
使用Edit Control 在属性面板中,设置“行为”为password
- 一、HTML和CSS基础--开发工具--Sublime前端开发工具技巧介绍
下载:官网下载(根据系统下载) 安装:按步骤安装即可 注意:当前稳定版本为2,但3的功能有提升:Mac和Windows下的快捷键不同 优点:启动速度快,界面简洁,可以直接打开图片. 1 菜单栏主要功能 ...
- VIM Tutorials----(updating)
This is my first English tutorial; I hope I can help you to learn VIM. Any question send email to me ...
- GDUT 校赛02 dp回文串
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABSkAAAIhCAIAAAAtmainAAAgAElEQVR4nOzdfaxkd33n+ZJacstqa3 ...