BZOJ 2436 Noi嘉年华(优化DP)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2436
题意:有一些活动,起始时间持续时间已知。有两个场地。每个活动最多只能在一个场地举行,且两个场地同一时间不能都举行活动。但是同一场地同一时间可以举行多个活动。要求的是两个场地中活动数目少的场地的活动数目的最大值S。再输出某个活动必须被安排时的S值。
思路:我直接粘贴原思路了。
区间离散化,设A={嘉年华1的活动}, B={嘉年华2的活动},C={未安排的活动}。
设num[i][j]为包含在区间[i,j]中的区间个数;
pre[i][j]为在区间[0,i]中放入j个区间到B后,最多能放入A的个数;
suf[i][j]为在区间[i, +∞)中放入j个区间到B后,最多能放入A的个数。
那么第一问答案为:max(min(i,suf[0][i]))。
int pre[N][N],suf[N][N],g[N][N],L[N],R[N];
int p[N],n,num[N][N],m;
void DP()
{
int i,j,k;
FOR0(i,N) FOR0(j,N) pre[i][j]=suf[i][j]=g[i][j]=-INF;
pre[0][0]=suf[m-1][0]=0;
FOR0(i,m)
{
for(j=0;j<=n;j++) if(pre[i][j]>=0)
{
upMax(pre[i][pre[i][j]],j);
}
for(j=n-1;j>=0;j--) upMax(pre[i][j],pre[i][j+1]);
for(j=0;j<=n+1;j++) for(k=i+1;k<m;k++) if(pre[i][j]>=0)
{
upMax(pre[k][pre[i][j]],j+num[i][k]);
}
}
for(i=m-1;i>=0;i--)
{
for(j=0;j<=n+1;j++) if(suf[i][j]>=0)
{
upMax(suf[i][suf[i][j]],j);
}
for(j=n-1;j>=0;j--) upMax(suf[i][j],suf[i][j+1]);
for(j=0;j<=n;j++) for(k=i-1;k>=0;k--) if(suf[i][j]>=0)
{
upMax(suf[k][suf[i][j]],j+num[k][i]);
}
}
int x,y;
FOR0(i,m) FOR0(j,m)
{
y=n;
for(x=0;x<=n;x++)
{
while(y>=0&&x+y>num[i][j]+pre[i][x]+suf[j][y]) y--;
if(y>=0) upMax(g[i][j],x+y);
}
}
int ans=0;
for(i=0;i<=n;i++) upMax(ans,min(i,suf[0][i]));
PR(ans);
FOR0(i,n)
{
ans=0;
for(j=0;j<=L[i];j++) for(k=R[i];k<m;k++)
{
upMax(ans,g[j][k]);
}
PR(ans);
}
}
int main()
{
RD(n);
int i,j;
FOR0(i,n)
{
RD(L[i],R[i]); R[i]=R[i]+L[i];
p[m++]=L[i];
p[m++]=R[i];
}
sort(p,p+m);
m=unique(p,p+m)-p;
FOR0(i,n)
{
L[i]=lower_bound(p,p+m,L[i])-p;
R[i]=lower_bound(p,p+m,R[i])-p;
}
FOR0(i,m)
{
FOR0(j,n) if(L[j]>=i) num[i][R[j]]++;
for(j=i+1;j<m;j++) num[i][j]+=num[i][j-1];
}
DP();
}
BZOJ 2436 Noi嘉年华(优化DP)的更多相关文章
- BZOJ 2436 NOI嘉年华(单调优化)
http://www.lydsy.com/JudgeOnline/problem.php?id=2436 题意:两个会场不能同时表演,但是同一个时间可以同时表演,要求让两个会场表演数量最小的最大,然后 ...
- BZOJ 3156: 防御准备 斜率优化DP
3156: 防御准备 Description Input 第一行为一个整数N表示战线的总长度. 第二行N个整数,第i个整数表示在位置i放置守卫塔的花费Ai. Output 共一个整数,表示最小的战 ...
- BZOJ2436 [Noi2011]Noi嘉年华 【dp】
题目链接 BZOJ2436 题解 看这\(O(n^3)\)的数据范围,可以想到区间\(dp\) 发现同一个会场的活动可以重叠,所以暴力求出\(num[l][r]\)表示离散化后\([l,r]\)的完整 ...
- bzoj 3126 单调队列优化dp
能转移的最左是其左边完整区间的最右左端点,最右是能覆盖它的最左左端点-1 #pragma GCC optimize ("O3") #include<cstdio> #i ...
- 【BZOJ 2436】 2436: [Noi2011]Noi嘉年华 (区间DP)
2436: [Noi2011]Noi嘉年华 Description NOI2011 在吉林大学开始啦!为了迎接来自全国各地最优秀的信息学选手,吉林大学决定举办两场盛大的 NOI 嘉年华活动,分在两个不 ...
- 2436: [Noi2011]Noi嘉年华 - BZOJ
Description NOI2011 在吉林大学开始啦!为了迎接来自全国各地最优秀的信息学选手,吉林大学决定举办两场盛大的 NOI 嘉年华活动,分在两个不同的地点举办.每个嘉年华可能包含很多个活动, ...
- bzoj 2436: [Noi2011]Noi嘉年华
Description NOI2011 在吉林大学开始啦!为了迎接来自全国各地最优秀的信息学选手,吉林大学决定举办两场盛大的 NOI 嘉年华活动,分在两个不同的地点举办.每个嘉年华可能包含很多个活动, ...
- luogu P1973 [NOI2011]NOI 嘉年华 dp
LINK:NOI 嘉年华 一道质量非常高的dp题目. 考虑如何求出第一问 容易想到dp. 按照左端点排序/右端点排序状态还是很难描述. 但是我们知道在时间上肯定是一次选一段 所以就可以直接利用时间点来 ...
- BZOJ 1499 [NOI2005] 瑰丽华尔兹 | 单调队列优化DP
BZOJ 1499 瑰丽华尔兹 | 单调队列优化DP 题意 有一块\(n \times m\)的矩形地面,上面有一些障碍(用'#'表示),其余的是空地(用'.'表示).每时每刻,地面都会向某个方向倾斜 ...
随机推荐
- 夺命雷公狗ThinkPHP项目之----企业网站21之网站前台二级分类显示名称(TP自定义函数展示无限极分类)
我们实现网站二级分类的显示的时候,先要考虑的是直接取出顶级栏目,控制器代码如下所示: <?php namespace Home\Controller; use Think\Controller; ...
- Logic and Fault simulation
fault simulation是指对fault circuit的simulation,来locate manufacturing defects并且进行fault diagnosis. logic ...
- dbms_sql包的用法
http://blog.itpub.net/20948385/viewspace-691398 对于一般的select操作,如果使用动态的sql语句则需要进行以下几个步骤: open cursor ...
- archlinux锁屏
启动管理器用的是 slim 发现锁屏可以用 slimlock
- ID3DXMesh接口 创建自己的立方体网格
D3DXCreateMeshFVF 首先创建一个ID3DXMesh接口. ID3DXMesh接口的说明可以参数龙书. 这里主要是用代码来讲解: #define VERTEX_FVF (D3DFVF_X ...
- 试用版SQL Server 2008 R2 提示评估期已过
解决SQL Server 2008提示评估期已过第一步:进入SQL2008配置工具中的安装中心第二步:再进入维护界面,选择版本升级第三步:进入产品密钥,输入密钥第四步:一直点下一步,直到升级完毕.SQ ...
- 原生js轮播以及setTimeout和setInterval的理解
下面这个代码是从一个群下载下来的,为了帮助自己理解和学习现在贴出来,与初学者共勉. <!DOCTYPE html> <html> <head> <meta c ...
- DELPHI出现无法加载dclite50.bpl的解决办法(转)
现象: Borland Integrated Translation Environment 加载出错 解决办法: 我的电脑--->(鼠标右键)属性--->高级--->(性能)设置- ...
- Javascript Window Location
window.location 对象在编写时可不使用 window 这个前缀. URL : 统一资源定位符 (Uniform Resource Locator) 说明: 完整的URL示例:scheme ...
- SQLServer学习笔记<>相关子查询及复杂查询
二.查询缺少值的查询 在这里我们加入要查询2008年每一天的订单有多少?首先我们可以查询下订单表的订单日期在2008年的所有订单信息. 1 select distinct orderdate,coun ...