当前位置: 首页 > news >正文

长沙企业网站建设收费软件培训机构排名

长沙企业网站建设收费,软件培训机构排名,环保主题静态网站模板,wordpress链家洛谷P5987 [PA2019] Terytoria 题目大意 在一个平面直角坐标系上,有一个长度为 X X X,宽度为 Y Y Y的地图,这个地图的左边界和右边界是连通的,下边界和上边界也是连通的。 在地图中,有 X Y X\times Y XY个格子以及…

洛谷P5987 [PA2019] Terytoria

题目大意

在一个平面直角坐标系上,有一个长度为 X X X,宽度为 Y Y Y的地图,这个地图的左边界和右边界是连通的,下边界和上边界也是连通的。

在地图中,有 X × Y X\times Y X×Y个格子以及 n n n个矩形,这些矩形的边与坐标轴平行。你只知道每个矩形两个对顶点的坐标,求被所有矩形覆盖住的格子数量的最大值?

1 ≤ n ≤ 5 × 1 0 5 , 2 ≤ X , Y ≤ 1 0 9 1\leq n\leq 5\times 10^5,2\leq X,Y\leq 10^9 1n5×105,2X,Y109


题解

因为每个矩形在横坐标上是取两边或中间,在纵坐标上也是取两边或中间,所以横坐标和纵坐标是不相关的。我们把这些矩形分成映射在 x x x轴的线段和映射在 y y y轴的线段,则最终的答案为 x x x轴上能被所有线段覆盖的最大长度 × y \times y ×y轴上能被所有线段覆盖的最大长度。那么,我们就可以将横坐标和纵坐标分开来做。

对横纵坐标进行离散化,对于离散化后的两个相邻的离散点连成的线段。那么,每种线段只有唯一的取法(取中间或者两边)才能覆盖这条由两个离散点连成的线段。我们用 01 01 01状态来表示每个矩形的覆盖情况( 0 0 0表示取两边, 1 1 1表示取中间),状态可以用哈希和差分来维护,然后用哈希表来存储对应状态的长度,边维护边取最大值。

时间复杂度为 O ( n log ⁡ n + P ) O(n\log n+P) O(nlogn+P),其中 P P P为哈希表的大小。

code

#include<bits/stdc++.h>
using namespace std;
const int N=500000,P=19260817,base=7;
const long long mod1=998244353,mod2=1e9+7;
int n,X,Y,tot=0,l[2*N+5],r[P+5],hv[2*N+5],w1[2*N+5],w2[2*N+5];
long long re,ans=0,pw1[N+5],pw2[N+5];
struct node{int x,w,id;
}x[2*N+5],y[2*N+5];
bool cmp(node ax,node bx){return ax.x<bx.x;
}
void add(int x,int h1,int h2,int vt){l[++tot]=r[x];w1[tot]=h1;w2[tot]=h2;hv[tot]=vt;r[x]=tot;
}
void pl(int h1,int h2,int vt){int u=h1%P;for(int i=r[u];i;i=l[i]){if(w1[i]==h1&&w2[i]==h2){hv[i]+=vt;re=max(re,1ll*hv[i]);return;}}add(u,h1,h2,vt);re=max(re,1ll*vt);
}
long long solve(node *a,int mx){memset(r,0,sizeof(r));re=0;tot=0;long long h1=0,h2=0;pl(0,0,a[1].x);for(int i=1;i<2*n;i++){h1=(h1+pw1[a[i].id]*a[i].w+mod1)%mod1;h2=(h2+pw2[a[i].id]*a[i].w+mod2)%mod2;pl(h1,h2,a[i+1].x-a[i].x);}pl(0,0,mx-a[2*n].x);return re;
}
int main()
{
//	freopen("globe.in","r",stdin);
//	freopen("globe.out","w",stdout);scanf("%d%d%d",&n,&X,&Y);for(int i=1,dx,dy,ux,uy;i<=n;i++){scanf("%d%d%d%d",&dx,&dy,&ux,&uy);if(dx>ux) swap(dx,ux);if(dy>uy) swap(dy,uy);x[i*2-1]=(node){dx,1,i};x[i*2]=(node){ux,-1,i};y[i*2-1]=(node){dy,1,i};y[i*2]=(node){uy,-1,i};}sort(x+1,x+2*n+1,cmp);sort(y+1,y+2*n+1,cmp);pw1[0]=pw2[0]=1;for(int i=1;i<=N;i++){pw1[i]=pw1[i-1]*base%mod1;pw2[i]=pw2[i-1]*base%mod2;}ans=solve(x,X)*solve(y,Y);printf("%lld",ans);return 0;
}
http://www.hkea.cn/news/850400/

相关文章:

  • 优秀网站建设公司电话下列哪些店铺适合交换友情链接
  • 58同城乌鲁木齐网站建设重庆网站到首页排名
  • wordpress知言主题山东服务好的seo公司
  • 旅游商务平台网站建设功能需求关键词排名查询官网
  • 做网站要搭建本地服务器么微商引流被加方法精准客源
  • 网站名字要备案吗友情链接怎么弄
  • 江苏网站开发外链网站大全
  • 网站代备案流程图百度关键词优化排名技巧
  • 石狮建设局网站今日头条站长平台
  • 修改公司网站网页站长素材音效
  • 网站速度测速免费访问国外网站的app
  • 常州网站搭建公司宣传推广渠道有哪些
  • 中国建设监理网站广告网络
  • 网站维护费用怎么收路由优化大师官网
  • 如何加入小说网站做打字员合肥网站优化推广方案
  • 网站建设现状关键词在线优化
  • 网站建设就业百度网址导航主页
  • 郑州公司做网站汉狮中囯联通腾迅
  • 专业网上购物平台优化网站的步骤
  • 用web开发一个网站怎么做网站推广优化平台
  • 建设企业网站进去无法显示搜索引擎seo
  • 网站 分辨率百度视频推广
  • 中国红河网seo排名工具
  • 做网站商丘3a汽车集团公司网络营销方案
  • 网络宣传推广策划范文seo如何优化排名
  • 网站 建设 原则新闻今天的最新新闻
  • 服装网站首页设计主要推广手段免费
  • 网站建设公司做销售好不好?seo搜索引擎优化实训总结
  • 江西威乐建设集团有限公司企业网站长春关键词优化公司
  • 深圳网站建设lxhd英文关键词seo