题解?noipT1还需要题解?正解就是$n^2$大暴力。

考试的时候打了$n^2$的暴力,也想到了正解的优化,然而觉得它太麻烦了,而且$n^2$怎么优化也过不了50000啊,而且即使不优化前面30分我也能拿到。

然而就把正解放弃了……完戏。

然而这题ifelse打的我好恶心啊……

ps.linux终端还是挺良心的,y1给我报错了,不然凉凉……

题解:

一个方块内部的贡献为:abs(x1(i)-x2(i))*abs(y1(i)-y2(i))*2;

然后$n^2$考虑方块间的贡献。

直接枚举肯定会T,考虑将输入排序,当不符合条件是break,居然快了这么多。

有一个坑点:

开始我写的是:else if(x1(j)>x2(i)&&y1(j)>y2(i))break;

但其实:else if(x1(j)>x2(i))break;就可以了。

 #include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
#define MAXN 100010
#define LL long long
#define int LL
#define max(a,b) ((a)>(b)?(a):(b))
#define ma(x,y) memset(x,y,sizeof(x))
using namespace std;
int n,maxn,maxy;
int map[][];
struct ques
{
int x1,x2,ty1,ty2;
#define x1(i) que[i].x1
#define x2(i) que[i].x2
#define ty1(i) que[i].ty1
#define ty2(i) que[i].ty2
friend bool operator < (ques a,ques b)
{
return a.x1==b.x1?a.ty1<b.ty1:a.x1<b.x1;
}
}que[MAXN];
inline int read();
void QJ2();
signed main()
{
n=read();
for(int i=;i<=n;i++)
x1(i)=read(),ty1(i)=read(),x2(i)=read(),ty2(i)=read();
QJ2();
}
inline int read()
{
int s=;char a=getchar();
while(a<''||a>'')a=getchar();
while(a>=''&&a<=''){s=s*+a-'';a=getchar();}
return s;
}
void QJ2()
{
sort(que+,que+n+);
LL ans=;
for(int i=;i<=n;i++)
ans+=1ll*abs(x1(i)-x2(i))*abs(ty1(i)-ty2(i))*;
for(int i=;i<=n;i++)
for(int j=i+;j<=n;j++)
{
if(i!=j)
{
if(ty1(j)==ty2(i)+)//j上
{
int ttt=min(x2(j),x2(i))-max(x1(j),x1(i))+;
if(ttt>)
{
ans+=(ttt-)*;
if(abs(x1(i)-x1(j))>)ans++;
if(abs(x2(i)-x2(j))>)ans++;
}
else if(abs(x1(i)-x1(j))==||abs(x2(i)-x2(j))==)ans++;
}
else if(ty2(j)==ty1(i)-)//j下
{
int ttt=min(x2(j),x2(i))-max(x1(j),x1(i))+;
if(ttt>)
{
ans+=(ttt-)*;
if(abs(x1(i)-x1(j))>)ans++;
if(abs(x2(i)-x2(j))>)ans++;
}
else if(abs(x1(i)-x1(j))==||abs(x2(i)-x2(j))==)ans++;
}
else if(x2(j)==x1(i)-)//j左
{
int ttt=min(ty2(j),ty2(i))-max(ty1(j),ty1(i))+;
if(ttt>)
{
ans+=(ttt-)*;
if(abs(ty1(i)-ty1(j))>)ans++;
if(abs(ty2(i)-ty2(j))>)ans++;
}
}
else if(x1(j)==x2(i)+)//j右
{
int ttt=min(ty2(j),ty2(i))-max(ty1(j),ty1(i))+;
if(ttt>)
{
ans+=(ttt-)*;
if(abs(ty1(i)-ty1(j))>)ans++;
if(abs(ty2(i)-ty2(j))>)ans++;
}
}
else if(x1(j)>x2(i)&&ty1(j)>ty2(i))break;
}
}
printf("%lld\n",ans);
exit();
}

HZOJ 辣鸡(ljh)的更多相关文章

  1. 7.29 NOIP模拟测试10 辣鸡(ljh)+模板(ac)+大佬(kat)

    T1 辣鸡(ljh) 就是一道分类讨论的暴搜,外加一丢丢的减枝,然而我挂了,为啥呢,分类讨论变量名打错,大于小于号打反,能对才怪,写了sort为了调试就注释了,后来忘了解开,小减枝也没打.但是这道题做 ...

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

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

  3. [NOIP模拟测试10]辣鸡(ljh) 题解

    首先计算块内贡献,很显然是$(x_2-x_1)*(y_2-y_1)*2$. 然后考虑矩形之间的贡献,sort一遍分类讨论$n^2$暴力即可. 注意考虑边界情况是否能多两个,以及角对角的情况. 另外,排 ...

  4. noip模拟6[辣鸡·模板·大佬·宝藏]

    这怕不是学长出的题吧 这题就很迷 这第一题吧,正解竟然是O(n2)的,我这是快气死了,考场上一直觉得aaaaa n2过不了过不了, 我就去枚举边了,然后调了两个小时,愣是没调出来,然后交了个暴力,就走 ...

  5. JVM 辣鸡回收

    垃圾回收算法 标记清除法 先标记出需要回收的对象,然后一次性回收.缺点:会产生内存碎片,并且效率也不高. 标记压缩法 先标记出需要回收的对象,然后让存活对象向一端移动,移动的过程中进行回收辣鸡.避免了 ...

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

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

  7. bzoj2141排队(辣鸡但是好写的方法)

    题意很明确,也非常经典: 一个支持查询 区间中比k大的数的个数 并且支持单点修改的序列 ——因为题意可以转化为:查询这两个数中比后者大的个数.比后者小的个数.比前者大的个数.比前者小的个数(根据这4个 ...

  8. SA的一个辣鸡trick

    基础板子 namespace SA{ int x[400010],y[400010],SA[400010],rk[400010],ht[400010],t[400010]; int st[19][40 ...

  9. 辣鸡蒟蒻Klaier的一些计划

    需要熟练的东西:cdq分治,堆,树链剖分,tarjan及其它一些图论算法,网络流,kmp,字符串哈希,线段树主席树,树状数组,斜率优化dp 需要学的东西:lct,后缀数组,AC自动机,平衡树 球队收益 ...

随机推荐

  1. 直接在安装了redis的Linux机器上操作redis数据存储类型--对Sorted-Sets操作

    一.概述: Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中.它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score ...

  2. windows 下nginx配置ssl https支持

    本文适合正式上线的配置,购买来的证书 私钥*.key文件需要先去掉密码 openssl rsa -in old.key -out new.key

  3. fedora python访问mysql

    1 下载驱动库 http://sourceforge.net/projects/mysql-python/ 2, yum install mysql-dev* yum install python-d ...

  4. IO流5 --- FileReader读入数据的基本操作 --- 技术搬运工(尚硅谷)

    FileReader 字符输入流 @Test public void test1(){ File file = new File("hello.txt"); FileReader ...

  5. CSS-DOM的小知识(二)

    上篇文章说到,通过element.style.property可以获得元素的样式,但是style属性只能够返回内嵌样式,对于外部样式表的样式和head中的style样式都无法获取,这就限制了此方法的使 ...

  6. Hdu 1068 最小路径覆盖

    Girls and Boys Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  7. 2017年2月27日Unicorn, US (148) and China (69), followed by the U.K. (10), India (9), Israel (5) and Germany (5).

    Revisiting The Unicorn Club Get to know the newest crowd of billion dollar startups In 2013, when Ai ...

  8. HTML之meta标签缓存控制

    <meta http-equiv="pragram" content="no-cache"> 禁止浏览器从本地缓存中调阅页面. 网页不保存在缓存中, ...

  9. nginx+tomcat集群+redis(memcache)session共享!

    常用保持session的方式: 1.一些代理(比如nginxIP_hash) 1.使用数据库来存储Session 2.使用Cookie来存储Session                       ...

  10. Directx11教程(18) D3D11管线(7)

    原文:Directx11教程(18) D3D11管线(7) 光栅化阶段(RS)之后,将进入PS/OM阶段. 参考外文资料:http://fgiesen.wordpress.com/2011/07/01 ...