首页 > 其他分享 >ABC351E 补题笔记

ABC351E 补题笔记

时间:2024-04-29 21:47:33浏览次数:24  
标签:int 比雪夫 笔记 曼哈顿 补题 距离 ABC351E define

批:赛时很快想到切比雪夫后就跳进主席树里出不来了。

一个很妙的题。

首先分 \(x+y\) 的奇偶性黑白染色后黑色和白色不可达。

然后对于同一个颜色的点易得 \(dis=\max(|x1-x2|,|y1-y2|)\) ,即切比雪夫距离。

这个时候就可以直接上主席树了,但太复杂不是正解。

最简单的解法是:我们充分发扬人类智慧,将点绕原点转 \(45\) 度再变长 \(\sqrt{2}\) 倍,也就是令坐标变成 \((x+y,x-y)\) 。

可以发现四种操作变成了 \((x+y+2,x-y)\) , \((x+y-2,x-y)\) , \((x+y,x-y+2)\) , \((x+y,x-y-2)\) ,于是直接变成了求曼哈顿距离除以 \(2\) 。由此也可以得到一个将切比雪夫距离变成曼哈顿距离的重要 trick 。

对于求曼哈顿距离之和的具体实现还可以像jly代码一样分两次拆贡献,也是一个非常高妙的写法。 \bx

code

#include <bits/stdc++.h>
//#include <windows.h>
#define ED cerr<<endl;
#define TS cerr<<"I AK IOI"<<endl;
#define cr(x) cerr<<x<<endl;
#define cr2(x,y) cerr<<x<<" "<<y<<endl;
#define cr3(x,y,z) cerr<<x<<" "<<y<<" "<<z<<endl;
#define cr4(x,y,z,w) cerr<<x<<" "<<y<<" "<<z<<" "<<w<<endl;
#define pii pair<int,int>
#define fi first
#define se second
#define int long long
using namespace std;
const int N=1e3+5,INF=2e9,mod=1e9+7;
int n,m,ans=0;
vector<int> xs[2],ys[2];
int get(vector<int> s)
{
	sort(s.begin(),s.end());
	int res=0,sz=s.size();
	for(int i=1;i<sz;++i) res+=(s[i]-s[i-1])*i*(sz-i);
	return res;
}
signed main()
{
	scanf("%lld",&n);
	int x,y;
	for(int i=1;i<=n;++i)
	{
		scanf("%lld%lld",&x,&y);
		int t=(x+y)&1ll;
		xs[t].emplace_back(x+y);
		ys[t].emplace_back(x-y);
	}
	int ans=get(xs[0])+get(xs[1])+get(ys[0])+get(ys[1]);
	ans/=2ll;
	printf("%lld",ans);
	return 0;
}

标签:int,比雪夫,笔记,曼哈顿,补题,距离,ABC351E,define
From: https://www.cnblogs.com/StevenZC/p/18166689

相关文章

  • C++ 学习笔记
    ​1、基础概念C++是一种高性能的编程语言,由BjarneStroustrup在1980年代初设计,旨在为C语言添加面向对象的功能。自那时起,C++已发展成为一种支持过程性、面向对象和泛型编程的多范式语言,广泛应用于系统软件、游戏开发、驱动程序、嵌入式固件等领域。要开始使用C++,首先需要......
  • [论文笔记] A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT
    Introduction:一个好的prompt可以提高LLM的表现;prompt可以像软件开发一样被工程化;这篇论文的主要贡献在于提出了promptpatterns用于promptengineeringComparingsoftwarepatternswithpromptpatterns:这篇论文提出的用于构建prompt的framework可以帮助用户......
  • SQL SERVER 从入门到精通 第5版 第三篇 高级应用 第11章 触发器 读书笔记
     第11章触发器>.概述触发器是一种特殊类型的存储过程.当指定表中的数据发生变化时触发器自动生效.它与表紧密相连,可以看作表定义的一部分.触发器不能通过名称被直接调用,更不允许设置参数.在SQLSERVER中,一张表可以有多个触发器.用户可以使用INS......
  • Asp-Net-Core开发笔记:使用AOP实现动态审计日志功能
    前言#最近一直在写Go和Python,好久没写C#,重新回来写C#代码时竟有一种亲切感~说回正题。在当今这个数字化迅速发展的时代,每一个操作都可能对业务产生深远的影响,无论是对数据的简单查询,还是对系统配置的修改。在这样的背景下,审计日志不仅仅是一种遵循最佳实践的手段,更是......
  • 统一场理论公式推导和笔记——part4
    三十二,核力场的定义方程所有的场都可以通过引力场变化而得到。核力场和电磁场一样也可以用引力场的变化来表示。==》这个就非常关键了,万有引力场【简称引力场】,回忆下定义:o点在空间点p处产生的引力场A【数量为a】:a=常数乘以Δn/Δs,A=-gkΔn(R/r)/Ωr² =-gkΔnR/Ω......
  • pde复习笔记 第一章 波动方程 第三节 分离变量法
    教材谷超豪《数学物理方程》第四版,虽然我们老师用的第三版,但是除了页码对不上,习题多了一点,也似乎没有多少区别。打算开个新栏专门总结一下pde的各种计算问题,在图书馆算的手麻了,但是习题几乎都是按套路出牌,所以打算好好总结一下。齐次方程提醒:这里的边界条件是两端固定,也即......
  • 机器学习笔记
    四、机器学习1深度学习1.1线性回归与逻辑回归1.1.1线性回归1.1.1.1线性回归——二维线性回归方程1)原理讲述这个应该上过高中的小伙伴都听过,也都用过,那是在高中必修3中出现的知识点,考试也是会考的,可能你想不起那个公式了,但你肯定依稀的记得$\hat{a},\hat{b}$这两个......
  • DSP学习笔记(1)
    DSP28335最小系统电源电路晶振电路作用:提供稳定的时钟晶振频率:一般为30MHz复位电路使用JTag烧录程序过程中不能复位,否则芯片可能锁死下载电路F28335启动模式存储器与寄存器F28335芯片内部的存储器包括了256K×16位的FLASH(ROM),34K×16位的SARAM,8K×16......
  • 【笔记】Burnside 引理
    (轨道公式)$$|G|=|G_x|\cdot|O_x|$$对于\(G\)在\(\Omega\)上的群作用,\(\forallx\in\Omega\),定义\(O_x:=\{g(x)\midg\inG\}\),称为\(x\)的\(G\)-轨道。定义\(G_x:=\{g\inG\midg(x)=x\}\),称为\(x\)的稳定子群,它的确是\(G\)的子群。而轨道有如下性质......
  • DSP学习笔记(1)
    DSP28335最小系统电源电路晶振电路作用:提供稳定的时钟晶振频率:一般为30MHz复位电路使用JTag烧录程序过程中不能复位,否则芯片可能锁死下载电路F28335启动模式存储器与寄存器F28335芯片内部的存储器包括了256K×16位的FLASH(ROM),34K×16位的SARAM,8K×16......