bzoj4951 [Wf2017]Money for Nothing
题解:
答案显然是$max((q-p)*(e-d))$
依然先贪心。
对于工厂,我们倾向于$pi<pj,di<dj$的;
对于买家,我们倾向于$qi>qj,ei>ej$的。
于是将一定不是最优解的工厂和买家划掉。
然后我们发现这个东西是满足决策单调性的。
问我怎么证?画一个二维坐标系,然后将选中的点都画上,然后就理性易证了。
最后分治。
代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define N 500050
#define ll long long
inline ll rd()
{
ll f=,c=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){c=*c+ch-'';ch=getchar();}
return f*c;
}
int n0,m0,n,m;
struct Pair
{
ll x,y;
Pair(){}
Pair(ll x,ll y):x(x),y(y){}
};
bool cmp1(Pair a,Pair b)
{
if(a.x!=b.x)return a.x<b.x;
return a.y<b.y;
}
bool cmp2(Pair a,Pair b)
{
if(a.x!=b.x)return a.x<b.x;
return a.y>b.y;
}
Pair a0[N],b0[N],a[N],b[N];
ll ans = ;
void divi(int l1,int r1,int l2,int r2)
{
if(l1>r1||l2>r2)return ;
if(l1==r1)
{
for(int i=l2;i<=r2;i++)
if(b[i].x>a[l1].x)ans = max(ans,(b[i].x-a[l1].x)*(b[i].y-a[l1].y));
return ;
}
if(l2==r2)
{
for(int i=l1;i<=r1;i++)
if(b[l2].x>a[i].x)ans = max(ans,(b[l2].x-a[i].x)*(b[l2].y-a[i].y));
return ;
}
int mid = (l2+r2)>>;
int pos=l1;
ll max_val=-0x3f3f3f3f3f3f3f3fll;
for(int i=l1;i<=r1;i++)
{
if(b[mid].x<=a[i].x&&b[mid].y<=a[i].y)continue;
if((b[mid].x-a[i].x)*(b[mid].y-a[i].y)>max_val)
{
pos = i;
max_val=(b[mid].x-a[i].x)*(b[mid].y-a[i].y);
}
}
ans=max(ans,max_val);
divi(l1,pos,l2,mid-);
divi(pos,r1,mid+,r2);
}
int main()
{
// freopen("33.in","r",stdin);
n0 = rd(),m0 = rd();
for(int i=;i<=n0;i++)
a0[i].x = rd(),a0[i].y = rd();
for(int i=;i<=m0;i++)
b0[i].x = rd(),b0[i].y = rd();
sort(a0+,a0++n0,cmp1);
sort(b0+,b0++m0,cmp2);
ll lim = 0x3f3f3f3f3f3f3f3fll;
for(int i=;i<=n0;i++)
if(a0[i].y<lim)
{
a[++n]=a0[i];
lim = a0[i].y;
}
for(int i=;i<=m0;i++)
{
while(m&&b[m].y<=b0[i].y)m--;
b[++m]=b0[i];
}
divi(,n,,m);
printf("%lld\n",ans);
return ;
}
bzoj4951 [Wf2017]Money for Nothing的更多相关文章
- 4951: [Wf2017]Money for Nothing 决策单调性 分治
Bzoj4951:决策单调性 分治 国际惯例题面:一句话题面:供应商出货日期为Ei,售价为Pi:用户收购截止日期为Si,收购价格为Gi.我们要求max((Si-Ej)*(Gi-Pj)).显然如果我们把 ...
- BZOJ4951 Wf2017Money for Nothing(决策单调性)
按时间排序,显然可能存在于答案中的公司价格应该单调递减.然后就可以大胆猜想感性证明其有决策单调性.具体地,设f(i,j)表示第i个消费公司和第j个生产公司搭配的获利,f(i,j)=(ti-tj)*(c ...
- 4950: [Wf2017]Mission Improbable
4950: [Wf2017]Mission Improbable Time Limit: 1 Sec Memory Limit: 512 MBSubmit: 608 Solved: 222[Sub ...
- 【WF2017】Mission Improbable
http://www.lydsy.com/JudgeOnline/problem.php?id=4950 对于俯视图很好解决,把所有不是0的位置拿到剩1就可以了. 对于正视图与侧视图,稍微想一下也能发 ...
- 【刷题】BZOJ 4950 [Wf2017]Mission Improbable
Description 那是春日里一个天气晴朗的好日子,你准备去见见你的老朋友Patrick,也是你之前的犯罪同伙.Patrick在编程竞赛上豪赌输掉了一大笔钱,所以他需要再干一票.为此他需要你的帮助 ...
- 【bzoj4952】[Wf2017]Need for Speed 二分
题目描述 已知$\sum\limits_{i=1}^n\frac{d_i}{s_i+c}=t$,求$c$ $(d_i>0,s_i+c>0)$ 输入 第一行包含两个整数n(1≤n≤1000) ...
- 【bzoj4950】【 [Wf2017]Mission Improbable】贪心+二分图匹配
(上不了p站我要死了,侵权度娘背锅) Description 那是春日里一个天气晴朗的好日子,你准备去见见你的老朋友Patrick,也是你之前的犯罪同伙.Patrick在编程竞赛 上豪赌输掉了一大笔钱 ...
- bzoj 4951: [Wf2017]Money for Nothing【分治】
参考:https://blog.csdn.net/herobrine_tkj/article/details/78404426?locationNum=8&fps=1 为什么从1开始存就挂了, ...
- bzoj4950: [Wf2017]Mission Improbable
跟着靖靖做题%%%%% 这题一看就觉得和之前的某场模拟赛的一道题很像,找假如某行某列的最大值一样的就可以只堆一个,跑匈牙利就行 一开始以为箱子不能移动-_-! 然后有个坑,大家都知道当这个位置有箱子就 ...
随机推荐
- autolayout UIImageView 根据 UILabel的宽度变换位置
仅个人学习笔记,大牛勿喷 代码写法 使用Masonry //昵称 _nameLableView = [[UILabel alloc]init]; [_nameLableView setTextColo ...
- C#中自定义类数组和结构数组的使用
如有雷同,不胜荣幸,若转载,请注明 C#中自定义类数组和结构数组的使用 最近在很多项目中发现很多时候给定的数组要实现某个逻辑或处理很是麻烦,一维数组,二维数组,,,等等需要经过n多转换,还不如自己写一 ...
- PHPmail 亲测可用
2017年5月8日9:10:47 1.在模块的配置文件中加入下里面代码,账号最好用126邮箱'THINK_EMAIL' => array( 'SMTP_HOST' => 'smtp.163 ...
- Jquery | 基础 | 属性过滤选择器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Codeforces Round #323 (Div. 2)
被进爷坑了,第二天的比赛改到了12点 水 A - Asphalting Roads /************************************************ * Author ...
- Web service简介 与servletContext的参数
Web service顾名思义是基于web的服务,它是一种跨平台,跨语言的服务. 我们可以这样理解它,比如说我们可以调用互联网上查询天气信息的web服务,把它嵌入到我们的B/S程序中,当用户从我们的网 ...
- 【前端】jq弹出一个透明小提示窗,然后逐渐消失
function show_main(content) { var showWindow = '<div id="show_main" style="borde ...
- 所有DOM元素加载之前执行的页面加载事件[jquery]
<script type="text/javascript"> (function() { alert("DOM还没加载"); })(jQuery) ...
- sql server 2012 从删库到跑路
问题: 向sql server 2012单个数据库中导入1500万+条数据的时候,报错: 错误 0xc0202009: 数据流任务 1: SSIS 错误代码 DTS_E_OLEDBERROR.出现 O ...
- Windows 2016 安装Sharepoint 2016 预装组件失败
Windows 2016 安装Sharepoint 2016 预装组件失败 日志如下: -- :: - Request for install time of Web 服务器(IIS)角色 -- :: ...