题解:

判断每一次加进来的时候有几个被破坏,几个添加

然后单调栈维护

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=;
int n,j,k,ans=,now,oo=;
struct note{int x,y,id;}a[N],b[N];
bool cmp(const note i,const note j){return i.x<j.x;}
struct stack
{
note e[N]; int l,h,t;
void pre(int z){l=;h=t=;e[].x=now;e[].y=oo*z;}
void add(note a,bool z){if ((a.y<e[l].y)^z)e[++l]=a;}
void Xwork(int x,bool z){while (h<=l&&((e[h].x<x)^z))h++;h?h--:;}
void Ywork(int y,bool z){while (t<=l&&((e[t].y<y)^z))t++;}
}c1,c2,c3,c4;
int main()
{
scanf("%d",&n);
for (int i=;i<=n;i++)scanf("%d%d",&a[i].x,&a[i].y),a[i].id=i;
memcpy(b,a,sizeof(b));
std::sort(b+,b+n+,cmp);
for (int i=;i<=n;i++)
{
now=a[i].x;c1.pre(),c2.pre();c3.pre(-),c4.pre(-);
for (k=;k<=n&&b[k].x<a[i].x;k++);
for (j=k-;j;j--)
if (b[j].id<i)
if (b[j].y>a[i].y) c2.add(b[j],);
else c3.add(b[j],);
for (j=k;j<=n;j++)
if (b[j].id<i)
if (b[j].y>a[i].y) c1.add(b[j],);
else c4.add(b[j],);
ans+=c1.l+c2.l+c3.l+c4.l;
for (int j=;j<=c1.l;j++)
{
int x=c1.e[j].x,y=c1.e[j].y,xx,yy;
if (!c3.l) continue;
c2.Ywork(y,);xx=c2.e[c2.t].x;
if (c2.t>c2.l) xx=-oo;c3.Xwork(xx,);
c4.Xwork(x,);yy=c4.e[c4.h].y;c3.Ywork(yy,);
c3.h>c3.l?c3.h--:;c3.t?:c3.t++;
ans-=max(c3.h-c3.t+,);
}
c2.h=c2.t=c3.h=c3.t=c4.h=c4.t=;
for (int j=;j<=c4.l;j++)
{
int x=c4.e[j].x,y=c4.e[j].y,xx,yy;
if (!c2.l) continue;
c3.Ywork(y,);xx=c3.e[c3.t].x;
if (c3.t>c3.l) xx=-oo;c2.Xwork(xx,);
c1.Xwork(x,);yy=c1.e[c1.h].y;c2.Ywork(yy,);
c2.h>c2.l?c2.h--:;c2.t?:c2.t++;ans-=max(c2.h-c2.t+,);
}
printf("%d\n",ans);
}
return ;
}

spoj mpoint的更多相关文章

  1. BZOJ 2588: Spoj 10628. Count on a tree [树上主席树]

    2588: Spoj 10628. Count on a tree Time Limit: 12 Sec  Memory Limit: 128 MBSubmit: 5217  Solved: 1233 ...

  2. SPOJ DQUERY D-query(主席树)

    题目 Source http://www.spoj.com/problems/DQUERY/en/ Description Given a sequence of n numbers a1, a2, ...

  3. SPOJ GSS3 Can you answer these queries III[线段树]

    SPOJ - GSS3 Can you answer these queries III Description You are given a sequence A of N (N <= 50 ...

  4. 【填坑向】spoj COT/bzoj2588 Count on a tree

    这题是学主席树的时候就想写的,,, 但是当时没写(懒) 现在来填坑 = =日常调半天lca(考虑以后背板) 主席树还是蛮好写的,但是代码出现重复,不太好,导致调试的时候心里没底(虽然事实证明主席树部分 ...

  5. SPOJ bsubstr

    题目大意:给你一个长度为n的字符串,求出所有不同长度的字符串出现的最大次数. n<=250000 如:abaaa 输出: 4 2 1 1 1 spoj上的时限卡的太严,必须使用O(N)的算法那才 ...

  6. 【SPOJ 7258】Lexicographical Substring Search

    http://www.spoj.com/problems/SUBLEX/ 好难啊. 建出后缀自动机,然后在后缀自动机的每个状态上记录通过这个状态能走到的不同子串的数量.该状态能走到的所有状态的f值的和 ...

  7. 【SPOJ 1812】Longest Common Substring II

    http://www.spoj.com/problems/LCS2/ 这道题想了好久. 做法是对第一个串建后缀自动机,然后用后面的串去匹配它,并在走过的状态上记录走到这个状态时的最长距离.每匹配完一个 ...

  8. 【SPOJ 8222】Substrings

    http://www.spoj.com/problems/NSUBSTR/ clj课件里的例题 用结构体+指针写完模板后发现要访问所有的节点,改成数组会更方便些..于是改成了数组... 这道题重点是求 ...

  9. SPOJ GSS2 Can you answer these queries II

    Time Limit: 1000MS   Memory Limit: 1572864KB   64bit IO Format: %lld & %llu Description Being a ...

随机推荐

  1. 【题解】Luogu P4396 [AHOI2013]作业

    原题传送门 最快的解法好像是cdq,但窝只会莫队+线段树/树状数组的做法 题目要我们求1.在区间[l,r]中值域在[a,b]中有多少个数2.在区间[l,r]中值域在[a,b]中有多少个不同数 一眼就看 ...

  2. centos6添加mysql服务自启动

    环境: os: centos 6 db:mysql 5.6.40 1.修改/etc/init.d/mysqld文件,默认文件以及存在,该文件内容如下: #!/bin/sh # Copyright Ab ...

  3. MongoDB --- 01. 安装, 第三方客户端

    一.安装 1.选择默认安装 ①完成后进入目录查看 "C:\Program Files\MongoDB\Server\3.4\bin" ② 配置环境变量 ③ 在 c盘创建目录(数据库 ...

  4. MySQL安装时MySQL server一直安装失败日志显示This application requires Visual Studio 2013 Redistributable

    使用MySQL社区版的msi包进行安装,试了好多次,别的组件都能正常安装,只有MySQL server的安装状态显示为fail.删除所有安装的程序,包括所依赖的各种Microsoft发布的包,删除所有 ...

  5. asp.net 多个txt压缩导出下载

    //方法代码 MemoryStream ms = new MemoryStream(); byte[] buffer = null; using (ZipFile file = ZipFile.Cre ...

  6. server.xml引入子文件配置(tomcat虚拟主机)

    在配置tomcat虚拟主机时候,如何每一个虚拟主机写成单独文件,server.xml包含这些子文件? 如以下<OneinStack>中,添加JAVA环境虚拟主机后tomcat配置文件详情: ...

  7. Unable to start Ocelot because either a ReRoute or GlobalConfiguration

    在ASP.Net Core项目APIGateway中添加Ocelot+Consul然后运行时 ,VS2017报如下错 : 内部异常 1: Exception: Unable to start Ocel ...

  8. SpringAOP的xml实例、注解形式实例、概念理解 以及execution表达式实例与概念说明

    (1)Spring AOP的简单应用: -->AOP:(Aspect Orinted Programming)面向切面编程,用于具有横切逻辑的场合,如:访问控制,事务管理,性能检测,由切入点和增 ...

  9. 开发者中心没有勾选 ipad却需要传宣传图片的解决方法

    1.通过模拟器 运行一个ipad 把ipad的比例调到100% 然后保存图片,如果没有适配ipad会出现上下左右黑色边框,这些不必在意,把保存的图片拖到开发者中心即可,勾选右侧 ,都使用12.9英寸图 ...

  10. python语言的基本要素

    python语言的基本要素 一.基本的数据类型: 数字类型:整型.浮点型.复数 序列类型:字符串.时间日期 容器类型:列表.元祖.字典(散列表).集合 组合数据类型(容器类型所装载的数据构成数据集合) ...