当前位置: 首页 > news >正文

13 Codeforces Round 886 (Div. 4)G. The Morning Star(简单容斥)

G. The Morning Star

  • 思路:用map记录x,y,以及y-x、y+x
  • 从前往后统计一遍答案即可
  • 公式 a n s + = c n t [ x ] + c n t [ y ] − 2 ∗ c n t [ x , y ] + c n t [ y + x ] + c n t [ y − x ] ans+=cnt[x]+cnt[y]-2 * cnt[x,y]+cnt[y+x]+cnt[y-x] ans+=cnt[x]+cnt[y]2cnt[x,y]+cnt[y+x]+cnt[yx]
  • c n t [ x ] + c n y [ y ] − 2 ∗ c n t [ x , y ] cnt[x]+cny[y]-2 * cnt[x,y] cnt[x]+cny[y]2cnt[x,y]是统计坐标轴方向的,-2倍是需要把本身这个点给减去容斥是减一倍,这里还需要把自己给挖掉
  • c n t [ y + x ] + c n t [ y − x ] cnt[y+x]+cnt[y-x] cnt[y+x]+cnt[yx]是统计对角线方向的。这也是一种常用的表示对角线的技巧
#include <bits/stdc++.h>#define int long long
#define rep(i, a, b) for(int i = (a); i <= (b); ++i)
#define fep(i, a, b) for(int i = (a); i >= (b); --i)
#define _for(i, a, b) for(int i=(a); i<(b); ++i)
#define pii pair<int, int>
#define pdd pair<double,double>
#define ll long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_back
#define vi vector<int>/** 思路:用map记录x,y,以及y-x、y+x* 从前往后统计一遍答案即可*/
using namespace std;
const int maxn = 2e5 + 10;
pii a[maxn];void solve() {int n;cin>>n;map<int,int>cntx,cnty,cntd,cnts;map<pii,int>cnt;int ans=0;rep(i,1,n){cin>>a[i].x>>a[i].y;}sort(a+1,a+1+n);rep(i,1,n){int x=a[i].x,y=a[i].y;ans+=cntx[x];ans+=cnty[y];//容斥ans-=2*cnt[{x,y}];ans+=cntd[y-x];ans+=cnts[y+x];cntx[x]+=1;cnty[y]+=1;cntd[y-x]+=1;cnts[y+x]+=1;cnt[{x,y}]+=1;}cout<<ans*2<<endl;
}signed main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
//	freopen("C:\\Users\\24283\\CLionProjects\\untitled2\\1.in", "r", stdin);int _;cin >> _;while (_--)solve();return 0;
}
http://www.lryc.cn/news/308317.html

相关文章:

  • CLion 2023:专注于C和C++编程的智能IDE mac/win版
  • 数据可视化基础与应用-02-基于powerbi实现连锁糕点店数据集的仪表盘制作
  • 前后端分离Vue+nodejs酒店公寓客房预订管理系统udr7l-java-php-django-springboot
  • VUE打包的dist文件放到后端一起发布
  • React入门之React_渲染基础用法和class实例写法
  • Git自动忽略dll文件的问题
  • sql中如何实现递归
  • GPT 的基础 - T(Transformer)
  • 微信小程序 --- 常用样式和组件
  • 深圳智能制造半导体芯片行业源代码防泄密完整解决方案
  • Unity UI适配规则和对热门游戏适配策略的拆解
  • 嵌入式学习day25 Linux
  • Oracle数据泵跨大版本迁移数据库
  • 如何在Win系统从零开始搭建Z-blog网站,并将本地博客发布到公网可访问
  • sawForceDimensionSDK安装,sigma7+ros
  • 全量知识系统问题及SmartChat给出的答复 之3
  • 【常用的 SVN 命令及简要示例】
  • ISP代理是什么?怎么用?
  • 微服务之qiankun主项目+子项目搭建
  • 双非二本找实习前的准备day2
  • 快速搭建宠物医院服务小程序的步骤,无需编程经验
  • 从0开始python学习-53.python中flask创建简单接口
  • 如何怎麼搭建高效的爬蟲全球代理IP池?
  • FinalShell连接Linux
  • 数据分析Pandas专栏---第十一章<Pandas数据聚合与分组(1)>
  • 【Linux】将程序的输出显示到屏幕,同时写入到log文件
  • MySQL(基础篇)——函数、约束
  • 【wails】(4):使用wails做桌面应用开发,整合chatgpt-web项目做前端,进行本地开发,web端也可以连调,使用websocket实现
  • 八股文打卡day24——数据库(1)
  • robots.txt 文件规则