首先计算块内贡献,很显然是$(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+5;
int read()
{int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';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>=0?val:-val;
}
int n;
ll ans;
int main()
{n=read();for(int i=1;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+1,s+n+1,cmp2);for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){if(s[j].x>s[i].xx+1)break;    if(((s[j].xx+1==s[i].x)||(s[j].x-1==s[i].xx))&&((s[j].y-1==s[i].yy)||(s[j].yy+1==s[i].y)))ans++;else if(s[j].xx+1==s[i].x||s[j].x-1==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)+2;}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+1||s[j].yy+1==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)+2;}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 0;
}

转载于:https://www.cnblogs.com/Rorschach-XR/p/11267559.html

[NOIP模拟测试10]辣鸡(ljh) 题解相关推荐

  1. NOIP模拟测试10「大佬·辣鸡·模板」

    大佬 显然假期望 我奇思妙想出了一个式子$f[i]=f[i-1]+\sum\limits_{j=1}^{j<=m} C_{k \times j}^{k}\times w[j]$ 然后一想不对得容 ...

  2. [CSP-S模拟测试]:辣鸡(ljh) (暴力)

    题目描述 辣鸡$ljh\ NOI$之后就退役了,然后就滚去学文化课了. 然而在上化学课的时候,数学和化学都不好的$ljh$却被一道简单题难住了,受到了大佬的嘲笑. 题目描述是这样的: 在一个二维平面上 ...

  3. 辣鸡(ljh) NOIP模拟赛 模拟 平面几何 数论 化学相关(雾)

    [题目描述] 辣鸡ljhNOI之后就退役了,然后就滚去学文化课了. 然而在上化学课的时候,数学和化学都不好的ljh却被一道简单题难住了,受到了大佬的嘲笑. 题目描述是这样的:在一个二维平面上有一层水分 ...

  4. NOIP模拟测试19「count·dinner·chess」

    反思: 我考得最炸的一次 怎么说呢?简单的两个题0分,稍难(我还不敢说难,肯定又有人喷我)42分 前10分钟看T1,不会,觉得不可做,完全不可做,把它跳了 最后10分钟看T1,发现一个有点用的性质,仍 ...

  5. NOIP模拟(10.22)T2 杆子的排列

    杆子的排列 题目背景: 10.22 NOIP模拟作业T2 分析:DP 定义状态dp[i][j][k]表示,目前枚举到第i大的数(即n - i + 1)那么显然如果这一个数放在左边,可以在左边被看到,放 ...

  6. 2019.8.10 NOIP模拟测试16 反思总结【基本更新完毕忽视咕咕咕】

    一如既往先放代码,我还没开始改- 改完T1滚过来了,先把T1T2的题解写了[颓博客啊] 今天下午就要走了,没想到还有送行的饯别礼,真是欣喜万分[并没有] 早上刚码完前面的总结,带着不怎么有希望的心情开 ...

  7. NOIP模拟赛10 题解

    t3: 题意 给你一棵树,然后每次两种操作:1.给一个节点染色 : 2. 查询一个节点与任意已染色节点 lca 的权值的最大值 分析 考虑一个节点被染色后的影响:令它的所有祖先节点(包括自身)的所有除 ...

  8. 8.10 NOIP模拟测试16 Blue+Weed+Drink

    T1 Blue 贪心,每次跳得时候跳能跳到的最远的地方,跳过的就把他设为0,每次二分找到位置,一直跳就行,如果能跳到的位置就是当前位置或比当前位置还小(数组里现在呆着的这一块石头,二分得到的就是当前位 ...

  9. [NOIP模拟测试34]反思+题解

    不要陷入思维定势,如果长时间没有突破就要考虑更改大方向. 不要把简单问题复杂化. 做完的题就先放下,不管能拿多少分.不能过一段时间就回来调一下. $Solutions:$ A.次芝麻 因为$n+m$始 ...

最新文章

  1. MIT机器狗再进化,碎石冰面上跑也不打滑,这次真的稳如狗了
  2. 【云栖大会夺宝攻略】在线PK、打卡领奖、抢offer,开发者专属玩法在这里
  3. ubuntu14.04安装hadoop2.7.1伪分布式和错误解决
  4. 产品经理之深度学习促进产品
  5. Github 再现失误:部分用户密码明文暴漏
  6. java file文件删除_Java File.delete 删除文件
  7. 点与点集:边界点与聚点的关系【高等数学】
  8. cad画正弦曲线lisp_cadlisp基础教程.pdf
  9. RPG游戏制作-03-人物行走及A*寻路算法
  10. HTML标签与CSS样式
  11. linux vim输入法切换,完美解决Mac下Vim/Emacs的输入法切换问题
  12. 基于python和高德地图租房系统的设计与实现
  13. 联想小新Pro 16频繁蓝屏解决方案
  14. esp8266最小系统似乎是可以直接用起来接在飞控上的
  15. mpvue 引入weui
  16. 离线百度地图,QT添加按钮点击切换卫星地图和街道地图
  17. SAP VT实习(钻石级杰出人才计划)面经SAP大致介绍
  18. win7家庭版和旗舰版区别_WIN7_64位系统安装 MicroWIN_SP9后没有PC-PPI通讯协议怎么处理?...
  19. 嫦娥四号完成人类首次月面生物实验 月球长出第一株嫩芽
  20. Floyd最小环算法

热门文章

  1. 如何查看自电脑上安装的python版本?
  2. mssql创建临时表
  3. 【Java 8 GC 调优】并行GC
  4. 「架构远景·」TOGAF建模:价值链图
  5. 蓝桥杯决赛题目分析之皮亚诺曲线
  6. 抖音数据采集,最全python库selenium自动化使用!
  7. 数据库—用户权限管理(三十三)
  8. 触摸G4全球定位系统的Wi-Fi无线中国手机
  9. Qt5 封装toast提示框
  10. 数学表达式: 从恐惧到单挑 (5. 函数)