题解?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;就可以了。

  1 #include<algorithm>
  2 #include<iostream>
  3 #include<cstdlib>
  4 #include<cstring>
  5 #include<cstdio>
  6 #include<cmath>
  7 #define MAXN 100010
  8 #define LL long long
  9 #define int LL
 10 #define max(a,b) ((a)>(b)?(a):(b))
 11 #define ma(x,y) memset(x,y,sizeof(x))
 12 using namespace std;
 13 int n,maxn,maxy;
 14 int map[1010][1010];
 15 struct ques
 16 {
 17     int x1,x2,ty1,ty2;
 18     #define x1(i) que[i].x1
 19     #define x2(i) que[i].x2
 20     #define ty1(i) que[i].ty1
 21     #define ty2(i) que[i].ty2
 22     friend bool operator < (ques a,ques b)
 23     {
 24         return a.x1==b.x1?a.ty1<b.ty1:a.x1<b.x1;
 25     }
 26 }que[MAXN];
 27 inline int read();
 28 void QJ2();
 29 signed main()
 30 {
 31     n=read();
 32     for(int i=1;i<=n;i++)
 33         x1(i)=read(),ty1(i)=read(),x2(i)=read(),ty2(i)=read();
 34     QJ2();
 35 }
 36 inline int read()
 37 {
 38     int s=0;char a=getchar();
 39     while(a<'0'||a>'9')a=getchar();
 40     while(a>='0'&&a<='9'){s=s*10+a-'0';a=getchar();}
 41     return s;
 42 }
 43 void QJ2()
 44 {
 45     sort(que+1,que+n+1);
 46     LL ans=0;
 47     for(int i=1;i<=n;i++)
 48         ans+=1ll*abs(x1(i)-x2(i))*abs(ty1(i)-ty2(i))*2;
 49     for(int i=1;i<=n;i++)
 50     for(int j=i+1;j<=n;j++)
 51     {
 52         if(i!=j)
 53         {
 54             if(ty1(j)==ty2(i)+1)//j上
 55             {
 56                 int ttt=min(x2(j),x2(i))-max(x1(j),x1(i))+1;
 57                 if(ttt>0)
 58                 {
 59                     ans+=(ttt-1)*2;
 60                     if(abs(x1(i)-x1(j))>0)ans++;
 61                     if(abs(x2(i)-x2(j))>0)ans++;
 62                 }
 63                 else if(abs(x1(i)-x1(j))==1||abs(x2(i)-x2(j))==1)ans++;
 64             }
 65             else if(ty2(j)==ty1(i)-1)//j下
 66             {
 67                 int ttt=min(x2(j),x2(i))-max(x1(j),x1(i))+1;
 68                 if(ttt>0)
 69                 {
 70                     ans+=(ttt-1)*2;
 71                     if(abs(x1(i)-x1(j))>0)ans++;
 72                     if(abs(x2(i)-x2(j))>0)ans++;
 73                 }
 74                 else if(abs(x1(i)-x1(j))==1||abs(x2(i)-x2(j))==1)ans++;
 75             }
 76             else if(x2(j)==x1(i)-1)//j左
 77             {
 78                 int ttt=min(ty2(j),ty2(i))-max(ty1(j),ty1(i))+1;
 79                 if(ttt>0)
 80                 {
 81                     ans+=(ttt-1)*2;
 82                     if(abs(ty1(i)-ty1(j))>0)ans++;
 83                     if(abs(ty2(i)-ty2(j))>0)ans++;
 84                 }
 85             }
 86             else if(x1(j)==x2(i)+1)//j右
 87             {
 88                 int ttt=min(ty2(j),ty2(i))-max(ty1(j),ty1(i))+1;
 89                 if(ttt>0)
 90                 {
 91                     ans+=(ttt-1)*2;
 92                     if(abs(ty1(i)-ty1(j))>0)ans++;
 93                     if(abs(ty2(i)-ty2(j))>0)ans++;
 94                 }
 95             }
 96             else if(x1(j)>x2(i)&&ty1(j)>ty2(i))break;
 97         }
 98     }
 99     printf("%lld\n",ans);
100     exit(0);
101 }

View Code

转载于:https://www.cnblogs.com/Al-Ca/p/11264159.html

HZOJ 辣鸡(ljh)相关推荐

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

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

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

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

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

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

  4. 里加一列为1_9月1号新宠物食品法规实施啦,辣鸡宠物食品遭殃,你也可能违法...

    大家好啊,今天是2019年9月1号,对于宠物行业其实是一个非常特别的日子 今天宠物饲料管理办法正式实施 加上2019年1月1号实施的宠物饲料卫生规定以及2015年3月8号实施的全价宠物食品 犬粮,猫粮 ...

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

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

  6. 第五人格维修服务器中要不要玩,第五人格:匹配制度辣鸡!服务器还是崩!第五真的要凉了吗?...

    原标题:第五人格:匹配制度辣鸡!服务器还是崩!第五真的要凉了吗? 不知不觉我们的<第五人格>从曝光到现在就已经有500多天了呢,不仅仅在中国很受欢迎,还做了外国服面向海外~而现在游戏的访客 ...

  7. 一名非典型二流学生的自述 | 我是如何从菜鸟进化到辣鸡的

    人们总是一边不相信鸡汤,一边又奢望鸡汤在关键时刻能够拉自己一把. 事先说明,这是一碗有毒的鸡汤,请谨慎阅读,嘻嘻嘻-- 有很多大佬都在讲述成功的故事,却很少提到在成功之前,他们所经历的苦难和迷茫,他们 ...

  8. 辣鸡准备稍微碰一下深度学习系列(1/21)---上

    Hello Tensorflow(2.3.0)集ctrlCV之大成 -- MNIST 手写数字检测上 前BB MNIST数据集 一.是啥玩意? 二.怎么得到? 第一种:找大腿(keras) 第二种:伸 ...

  9. 如何将任意辣鸡话题写成一篇优秀的毕业论文——以本文为例

    [摘要]随着毕业季的临近,毕业论文已经令广大学生肝肠寸断.本文以科研的视角展开,具体从论文框架.语言技巧.作图风格.查重等多个方面论述如何将自己的辣鸡科研写成一篇优秀的毕业论文. [关键词] 毕业论文 ...

最新文章

  1. Excel 向程序发送命令时出现问题 解决方法 VS
  2. Consul 服务注册与发现02—— 服务提供者
  3. 添加库路经 linux,linux下的静态库与动态库
  4. eval函数 php_PHP的一句话木马代码和函数eval的简介
  5. 【C语言】第九章 复杂数据类型与结构体 题解
  6. 中国电子学会scratch等级考试三级
  7. 聊一聊SpringCloudNetflix的五大组件(神兽)
  8. 解决Ubuntu18.04 No wifi adapter found
  9. 黑马程序员 (重要)单进程、线程、非堵塞实现并发的原理
  10. 又见 Lucky Number
  11. hsqldb mysql_安装HSQLDB
  12. 极路由第三方插件大全_极路由极硬货HC5663春节折腾记
  13. dicards qualifiers
  14. 英文IT电子书下载:www.foxebook.net
  15. PIE Engine机器学习遥感影像监督分类全流程(附源码)
  16. R语言开放数据分析报告
  17. FW:维度打击,机器学习中的降维算法:ISOMAP  MDS_拔剑-浆糊的传说_新浪博客...
  18. 制作和删除软RAID
  19. 生成百度网盘文件目录_艾孜尔江撰稿
  20. (五)JMeter 断言

热门文章

  1. IC验证培训——解读《多线程向量处理器验证技术的研究》
  2. 【评价模型】建立交通网络的数学模型, 定量分析车辆行驶
  3. Windows10系统下配置mmdetection2.6(超详细)
  4. OpenCV学习笔记-FLANN匹配器
  5. magento 时区,对Magento的时间/时区的几点见解
  6. 安利几款简单实用的软件给你
  7. 互联网医疗知识付费平台的多种模式
  8. 关于专本套读的冷知识
  9. WebPlayer9视频点播系统服务器端部署说明
  10. On the Opportunities and Risks of Foundation Models-CAPABILITIES(1)