G. The Morning Star - 思维

分析:

直接暴力就会tle,不知道怎么下手,可以统计八个方向一条线上的所有坐标,这些坐标一定可以放在一起满足,分析都有哪些线,当横坐标相同时会有竖着的一条线都可以,也就是x = c,当纵坐标相同时会有横着的一条线, 也就是y = c,再看两个对角线,首先正对角线的直线方程是y = x + c,也就是满足x - y 相同的所有点都可以满足条件,再看反对角线,也就是y = -x + c,也就是x + y 相同的所有点都可以满足。

代码:

cpp 复制代码
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int T;
    cin >> T;
    while(T --) {
        int n;
        cin >> n;
        map<ll, ll> r, c, d, ud;
        for(int i = 0; i < n; i ++) {
            ll x, y;
            cin >> x >> y;
            r[x] ++;
            c[y] ++;
            d[x - y] ++;
            ud[x + y] ++;
        }
        ll ans = 0;
        for(auto x: r) ans += x.second * (x.second - 1);
        for(auto x: c) ans += x.second * (x.second - 1);
        for(auto x: d) ans += x.second * (x.second - 1);
        for(auto x: ud) ans += x.second * (x.second - 1);
        cout << ans << '\n';
    }
}
相关推荐
70asunflower30 分钟前
CUDA编程指南基础知识点总结(5)
c++·人工智能·cuda
Eward-an32 分钟前
LeetCode 1980 题通关指南|3种解法拆解“找唯一未出现二进制串”问题,附Python最优解实现
python·算法·leetcode
程序员酥皮蛋1 小时前
hot 100 第四十题 40.二叉树的层序遍历
数据结构·算法·leetcode
木斯佳2 小时前
HarmonyOS 6实战:从爆款vlog探究鸿蒙智能体提取关键帧算法
算法·华为·harmonyos
Mr.朱鹏3 小时前
JVM-GC垃圾回收案例
java·jvm·spring boot·算法·spring·spring cloud·java-ee
WJSKad12353 小时前
【DepthPro】实战教程:单目深度估计算法详解与应用
算法
wzqllwy3 小时前
8 大经典排序算法(Java 实现):原理 + Demo + 核心分析
java·算法·排序算法
We་ct3 小时前
LeetCode 77. 组合:DFS回溯+剪枝,高效求解组合问题
开发语言·前端·算法·leetcode·typescript·深度优先·剪枝
重生之我是Java开发战士3 小时前
【递归、搜索与回溯】二叉树中的深度优先搜索:布尔二叉树,求根节点到叶节点数字之和,二叉树剪枝,验证二叉搜索树,第K小的元素,二叉树的所有路径
算法·深度优先·剪枝
篮l球场3 小时前
矩阵置零
算法