[NOIP模拟测试10]辣鸡(ljh) 题解
首先计算块内贡献,很显然是$(x_2-x_1)*(y_2-y_1)*2$.
然后考虑矩形之间的贡献,sort一遍分类讨论$n^2$暴力即可。
注意考虑边界情况是否能多两个,以及角对角的情况。
另外,排序之后可以通过剪枝排除无用情况(j从i+1开始枚举以及那个break)来实现$n^2$过十万的梦想
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=1e5+;
int read()
{
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
struct block
{
int x,y,xx,yy;
}s[N];
int cmp2 (block a,block b)
{
//if(a.x==b.x)return a.xx<b.xx;
return a.x<b.x;
}
int abss(int val)
{
return val>=?val:-val;
}
int n;
ll ans;
int main()
{
n=read();
for(int i=;i<=n;i++)
s[i].x=read(),s[i].y=read(),s[i].xx=read(),s[i].yy=read(),ans+=2LL*(s[i].xx-s[i].x)*(s[i].yy-s[i].y);
// cout<<ans<<endl;
sort(s+,s+n+,cmp2);
for(int i=;i<=n;i++)
{
for(int j=i+;j<=n;j++)
{
if(s[j].x>s[i].xx+)break;
if(((s[j].xx+==s[i].x)||(s[j].x-==s[i].xx))&&((s[j].y-==s[i].yy)||(s[j].yy+==s[i].y)))ans++;
else if(s[j].xx+==s[i].x||s[j].x-==s[i].xx)
{
if(s[j].yy<=s[i].yy&&s[j].y>=s[i].y)
{
ans+=2LL*(s[j].yy-s[j].y);
if(s[i].yy>s[j].yy)ans++;
if(s[i].y<s[j].y)ans++;
}
else if(s[j].yy>s[i].yy&&s[j].y<s[i].y)
{
ans+=2LL*(s[i].yy-s[i].y)+;
}
else if(s[j].y>=s[i].y&&s[j].y<=s[i].yy)
{
ans+=2LL*(s[i].yy-s[j].y);
if(s[j].yy>s[i].yy)ans++;
if(s[j].y>s[i].y)ans++;
}
else if(s[j].yy>=s[i].y&&s[j].yy<=s[i].yy)
{
ans+=2LL*(s[j].yy-s[i].y);
if(s[j].yy<s[i].yy)ans++;
if(s[j].y<s[i].y)ans++;
}
}
else if(s[j].y==s[i].yy+||s[j].yy+==s[i].y)
{
if(s[i].x<=s[j].x&&s[i].xx>=s[j].xx)
{
ans+=2LL*(s[j].xx-s[j].x);
if(s[j].x>s[i].x)ans++;
if(s[j].xx<s[i].xx)ans++;
}
else if(s[i].x>s[j].x&&s[i].xx<s[j].xx)
{
ans+=2LL*(s[i].xx-s[i].x)+;
}
else if(s[j].x>=s[i].x&&s[j].x<=s[i].xx)
{
ans+=2LL*(s[i].xx-s[j].x);
if(s[j].x>s[i].x)ans++;
if(s[j].xx>s[i].xx)ans++;
}
else if(s[j].xx>=s[i].x&&s[j].xx<=s[i].xx)
{
ans+=2LL*(s[j].xx-s[i].x);
if(s[j].x<s[i].x)ans++;
if(s[j].xx>s[i].xx)ans++;
}
}
}
}
cout<<ans<<endl;
return ;
}
[NOIP模拟测试10]辣鸡(ljh) 题解的更多相关文章
- 7.29 NOIP模拟测试10 辣鸡(ljh)+模板(ac)+大佬(kat)
T1 辣鸡(ljh) 就是一道分类讨论的暴搜,外加一丢丢的减枝,然而我挂了,为啥呢,分类讨论变量名打错,大于小于号打反,能对才怪,写了sort为了调试就注释了,后来忘了解开,小减枝也没打.但是这道题做 ...
- 2019.7.29 NOIP模拟测试10 反思总结【T2补全】
这次意外考得不错…但是并没有太多厉害的地方,因为我只是打满了暴力[还没去推T3] 第一题折腾了一个小时,看了看时间先去写第二题了.第二题尝试了半天还是只写了三十分的暴力,然后看到第三题是期望,本能排斥 ...
- NOIP模拟测试10「大佬·辣鸡·模板」
大佬 显然假期望 我奇思妙想出了一个式子$f[i]=f[i-1]+\sum\limits_{j=1}^{j<=m} C_{k \times j}^{k}\times w[j]$ 然后一想不对得容 ...
- noip模拟测试10
T1 这道题在考场上想到了二维前缀和,就是自己算前缀和的方式有点麻烦,导致花的时间较长,但还是成功搞了出来. 因为暴力计算的话需要不停枚举左上角和右下角的 i ,j, 时间复杂度为 n^4 ,我当时就 ...
- 2019.8.3 [HZOI]NOIP模拟测试12 C. 分组
2019.8.3 [HZOI]NOIP模拟测试12 C. 分组 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 刚看这题觉得很难,于是数据点分治 k只有1和2两种,分别 ...
- [CSP-S模拟测试]:辣鸡(ljh) (暴力)
题目描述 辣鸡$ljh\ NOI$之后就退役了,然后就滚去学文化课了.然而在上化学课的时候,数学和化学都不好的$ljh$却被一道简单题难住了,受到了大佬的嘲笑.题目描述是这样的:在一个二维平面上有一层 ...
- 「题解」NOIP模拟测试题解乱写II(36)
毕竟考得太频繁了于是不可能每次考试都写题解.(我解释个什么劲啊又没有人看) 甚至有的题目都没有改掉.跑过来写题解一方面是总结,另一方面也是放松了. NOIP模拟测试36 T1字符 这题我完全懵逼了.就 ...
- [考试反思]0729NOIP模拟测试10
安度因:哇哦. 安度因:谢谢你. 第三个rank1不知为什么就来了.迷之二连?也不知道哪里来的rp 连续两次考试数学都占了比较大的比重,所以我非常幸运的得以发挥我的优势(也许是优势吧,反正数学里基本没 ...
- 2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色
2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 数据结构学傻的做法: 对每种颜色开动态开点线段树直接维 ...
随机推荐
- spring boot2.x集成spring security5与druid1.1.13(一)
版本: spring boot 2.1.2.RELEASE druid-spring-boot-starter 1.1.13 步骤: 一.maven ...
- SCP-bzoj-3309
项目编号:bzoj-3309 项目等级:Safe 项目描述: 戳这里 特殊收容措施: 以下用\((x, y)\)表示\(gcd(x, y)\). \[ ans = \sum _ {i = 1} ^ { ...
- select into outfile的sql语句
SELECT INTO…OUTFILE语句把表数据导出到一个文本文件中,并用LOAD DATA …INFILE语句恢复数据.但是这种方法只能导出或导入数据的内容,不包括表的结构,如果 ...
- 移动 web 端屏幕适配 - rem
前言 最近整理了一下以前学习前端的笔记,发现自己对移动 web 端屏幕适配(rem)这一块并没有真正理解,只是会用.接下来,把自己的一些对移动 web 端屏幕适配(rem)的思考记录下来. rem 介 ...
- How do I force my .NET application to run as administrator?
How do I force my .NET application to run as administrator? You'll want to modify the manifest that ...
- 有关JWT(Json Web Token)的那些事
用户认证是计算机安全领域一个永恒的热点话题,然而你会发现,开发者很少讨论有关Json Web Token的话题,其实使用Json Web Token集成到API身份验证机制中是容易,本文给大家普及基础 ...
- Idea JAVA項目的导入JAR包和导出jar包
一.IDea项目中导入jar包 打开菜单project structure,然后选择modules/dependencies下选择右侧的+,选择jar包目录中的jar文件,导入 二.导出jar包 菜单 ...
- JavaScript实现10大算法可视化
参考博客: https://www.cnblogs.com/Unknw/p/6346681.html#4195503 十大经典算法 一张图概括: 名词解释: n:数据规模 k:“桶”的个数 In-pl ...
- camunda流程部署的一些简单操作
act_re_deployment:(流程部署对象表)存放流程部署的显示名和部署时间 act_re_procdef:(流程定义表)存放流程定义的属性信息 act_ge_bytearray:(资源文件表 ...
- 一张图搞清楚Java异常机制
下面是Java异常类的组织结构,红色区域的异常类表示是程序需要显示捕捉或者抛出的. Throwable Throwable是Java异常的顶级类,所有的异常都继承于这个类. Error,Excepti ...