BZOJ2509 : 送分题
求出每个点向上下左右能延伸的最大长度$left$、$right$、$up$、$down$。
枚举每一条对角线,如果$j$可以作为左上角,$i$可以作为右下角,那么有:
$j+\min(down[j],right[j])-1\geq i$
$i-\min(left[i],up[i])+1\leq j$
$j<i$
排序+树状数组统计即可。
时间复杂度$O(n^2\log n)$。
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=2010;
int n,m,i,j,a[N][N],up[N][N],left[N][N],down[N][N],right[N][N],bit[N],ans;
struct P{int x,y;P(){}P(int _x,int _y){x=_x,y=_y;}}e[N],q[N];
inline bool cmp(const P&a,const P&b){return a.x<b.x;}
inline void read(int&a){char c;while(!(((c=getchar())>='0')&&(c<='9')));a=c-'0';while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';}
inline void init(){
int A,B,C,D;
read(A),read(B),read(C),read(D);
A++;B++;C++;D++;
A<<=1;B<<=1;C<<=1;D<<=1;
a[A][B]++;
a[A][D+1]--;
a[C+1][B]--;
a[C+1][D+1]++;
}
inline void add(int x){for(;x<=n;x+=x&-x)bit[x]++;}
inline void askadd(int x){for(;x;x-=x&-x)ans+=bit[x];}
inline void askdel(int x){for(;x;x-=x&-x)ans-=bit[x];}
inline void solve(int x,int y){
for(m=0;x<=n&&y<=n;x++,y++){
if(!a[x][y])continue;
e[++m]=P(x-min(up[x][y],left[x][y])+1,x);
q[m]=P(x,x+min(down[x][y],right[x][y])-1);
}
sort(e+1,e+m+1,cmp);
sort(q+1,q+m+1,cmp);
for(int i=1;i<=n;i++)bit[i]=0;
for(int i=1,j=1;i<=m;i++){
while(j<=m&&e[j].x<=q[i].x)add(e[j++].y);
askadd(q[i].y);
askdel(q[i].x);
}
}
int main(){
read(n),read(m);n++;n<<=1;
while(m--)init();
for(i=1;i<=n;i++)for(j=1;j<=n;j++)a[i][j]+=a[i-1][j]+a[i][j-1]-a[i-1][j-1];
for(i=1;i<=n;i++)for(j=1;j<=n;j++){
up[i][j]=a[i][j]?up[i-1][j]+1:0;
left[i][j]=a[i][j]?left[i][j-1]+1:0;
}
for(i=n;i;i--)for(j=n;j;j--){
down[i][j]=a[i][j]?down[i+1][j]+1:0;
right[i][j]=a[i][j]?right[i][j+1]+1:0;
}
for(i=1;i<=n;i++)solve(1,i);
for(i=2;i<=n;i++)solve(i,1);
return printf("%d",ans),0;
}
BZOJ2509 : 送分题的更多相关文章
- fjwc2019 D3T2 送分题
#185. 「2019冬令营提高组」送分题 这是原题..... P3615 如厕计划 手推一推你发现,显然男性不能多于女性. 然后你或许可以发现一个神奇的性质. 对于每个序列,我们记$M$为$1$,$ ...
- 送分题,ArrayList 的扩容机制了解吗?
1. ArrayList 了解过吗?它是啥?有啥用? 众所周知,Java 集合框架拥有两大接口 Collection 和 Map,其中,Collection 麾下三生子 List.Set 和 Queu ...
- 良心送分题(牛客挑战赛35E+虚树+最短路)
目录 题目链接 题意 思路 代码 题目链接 传送门 题意 给你一棵树,然后把这棵树复制\(k\)次,然后再添加\(m\)条边,然后给你起点和终点,问你起点到终点的最短路. 思路 由于将树复制\(k\) ...
- 牛客 26E 珂学送分2 (状压dp)
珂...珂...珂朵莉给你出了一道送分题: 给你一个长为n的序列{vi},和一个数a,你可以从里面选出最多m个数 一个合法的选择的分数定义为选中的这些数的和加上额外规则的加分: 有b个额外的规则,第i ...
- 算法笔记_063:蓝桥杯练习 送分啦(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 这题想得分吗?想,请输出“yes”:不想,请输出“no”. 输出格式 输出包括一行,为“yes”或“no”. 2 解决方案 初步一看,这题 ...
- C语言 · 送分啦
问题描述 这题想得分吗?想,请输出"yes":不想,请输出"no". 输出格式 输出包括一行,为"yes"或"no". ...
- 51nod 1174 区间中最大的数(送盾题)
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出一个有N个数的序列,编号0 - N - 1.进行Q次查询,查询编号i至j的所有数中,最大的数是多少. ...
- PAT 甲级 1050 String Subtraction (20 分) (简单送分,getline(cin,s)的使用)
1050 String Subtraction (20 分) Given two strings S1 and S2, S=S1−S2 is defined to be t ...
- 请问如何实现字符串UTF8->BIG5,BIG5->UTF8。保证送分。-Java/JavaSE
请问如何实现字符串UTF8-> BIG5,BIG5-> UTF8. ------回答--------- ------其他回答(100分)--------- public String BI ...
随机推荐
- CROSSUI桌面工具 分布加载模块(Distributed UI Module) 与 主模块Module 之间数据传输!
CROSSUI 基于 NW,如何在模Module 之间(主index.js and module1.js)传输数据? http://www.crossui.com/Forum/post577.htm ...
- 在Linux,误删磁盘分区怎么恢复呢【转】
在我们运维工作中,频繁的操作,可能命令写入错误,造成磁盘分区的删除,那么应该怎么办呢?怎么恢复磁盘分区呢? 一不小心删除了磁盘分区.如下图,删除了sda磁盘的第一个分区,为系统boot分区,系统如果重 ...
- kafka系列五、kafka常用java API
引入maven包 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka- ...
- WPF通过DynamicResource的用法
1.先在资源类库中编写:style.xaml,如下: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2 ...
- hping网络安全工具的安装及使用
hping是用于生成和解析TCPIP协议数据包的开源工具.创作者是Salvatore Sanfilippo.目前最新版是hping3,支持使用tcl脚本自动化地调用其API.hping是安全审计.防火 ...
- 使用FreeSWITCH做电话自动回访设置
一.背景介绍: 目前公司在处理客户回访方面,需要人工进行电话回访,尤其是逢年过节的时候,电话问候更能体现服务的品质: 在某些公司,电话销售员需要给大批量的陌生用户打电话,如果能过滤掉不关心的用户,销售 ...
- Android 图片平铺效果
我们大家都看过平铺的效果,那么我们都是怎么样才能实现的那,我们其实主要用到的就是api,我们一开始new一个bitmap,就可以了,但是,大家都没有想过,我们还可以用什么方法来做这个事情那,那么我们就 ...
- [java]用md5来判断两个文件是否完全相同
1. 前言 由于相比较两张图片是否是相同,如果通过像素点比较感觉速度比较慢,当很多图片进行比较时,效率就低很多了.由于每个文件md5基本上是唯一的,所以用获取文件的md5来判断是否相同文件. 2. 代 ...
- 基于react/vue的移动端终极适配方案vw单位(更新css-modules配置)
传送门: https://segmentfault.com/a/1190000014185590
- 选择一个 HTTP 状态码不再是一件难事 – Racksburg《转载》
本文转载自:众成翻译 译者:十年踪迹 链接:http://www.zcfy.cc/article/904 原文:http://racksburg.com/choosing-an-http-status ...