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

二维坐标下的运算

在二维图中,常常遇到一些需要大量坐标运算的题目,这时可以封装一个Point类,实现坐标高效运算。

// #define LOCAL
#include<iostream>
#include<queue>
#include<map>
using namespace std;
#define _for(i,a,b) for(int i = (a); i < (b); i++) 
#define _rep(i,a,b) for(int i = (a); i <= (b); i++)// 二维图涉及到坐标加减问题的时候 可以定义Point类
struct Point {int x, y;Point(int x = 0, int y = 0) : x(x) , y(y) {}
};using Vector = Point;
using IPair = pair<int, int> ;Vector operator+(const Vector& v1, const Vector& v2) {return Vector(v1.x+v2.x , v1.y+v2.y);
}Vector operator-(const Vector& v1, const Vector& v2) {return Vector(v1.x-v2.x , v1.y-v2.y);
}Vector operator*(const Vector& v1, const int& k) {return Vector(v1.x*k , v1.y*k);
}Vector operator/(const Vector& v1, const int& k) {return Vector(v1.x/k , v1.y/k);
}bool operator==(const Vector& v1, const Vector& v2) {return v1.x==v2.x && v1.y==v2.y;
}bool inRange(int x, int l, int r) {return (l > r) ? inRange(x, r, l) : (l <= x && x <= r);
}const int N = 100;
Vector dir[] = {{1,1}, {1,-1}, {-1,1}, {-1,-1}};
int n, m, k;bool isValid(Vector& p) {return inRange(p.x, 0, n-1) && inRange(p.y, 0, m-1); 
}int readint() {int x; cin >> x; return x;
}constexpr int maxn = 1024;int main() {return 0;
}
http://www.hskmm.com/?act=detail&tid=17325

相关文章:

  • Polar2025秋季个人挑战赛web-writeup
  • Day4
  • 题解:P12751 [POI 2017 R2] 集装箱 Shipping containers
  • 弱网配置
  • 绘制金融集团监控大屏的地图demo
  • 实用指南:《原神助手》开源神器:游戏体验大升级
  • 9-25
  • AT_agc021_d [AGC021D] Reversed LCS
  • adb shell 常用文件命令
  • Java文件编程
  • 自我介绍与规划
  • 软件工程学习日志2025.9.25
  • 从50ms到30ms:YOLOv10部署中图像预处理的性能优化实践 - 实践
  • redis实现分布式锁1
  • 完整教程:(13)GPS/无GPS转换
  • Transformer自回归关键技术:掩码注意力原理与PyTorch完整实现
  • 第四篇
  • PyTorch图神经网络(六)
  • Qwen多模态系列模型笔记—Qwen-VL
  • go 语法里变量前面增加、*区别
  • 历程回顾-(2024-2025)
  • CF Round 1053(2150 2151) 总结
  • 20250922_QQ_backdoor
  • 实用指南:【Java八股文】13-中间件面试篇
  • AT_agc012_d [AGC012D] Colorful Balls
  • 02、Python从入门到癫狂:函数与资料容器
  • 第二周第四天2.4
  • 9/25
  • 关闭Edge浏览器页面的圆角效果
  • 搜索二维矩阵II-leetcode