E - ∙ (Bullet) 不能同池子的限制,计数

...

主要是他这个-1 。。。因为 x y是并 。。比如 x 有0123 y也有012 就两种0 。。有-1 。

然后同号 异号 ? 同号 异号 就是分两类。。

的处理。。和计算。

cpp 复制代码
void solve() {
	cin >> n;
	map<ar, ar>mp;
	int cnt = 0;
	for (int i = 1; i <= n; ++i) {
		int x, y; cin >> x >> y;
		if (x == 0 && y == 0)
			cnt++;
		else if (x == 0)mp[ {0, 0}][0]++;
		else if (y == 0)mp[ {0, 0}][1]++;
		else {
			int t = gcd(x, y);
			x /= t, y /= t;
			if (x < 0 && y < 0)mp[ { -x, -y}][0]++;
			else if (x < 0)mp[ {y, -x}][1]++;
			else if (y < 0)mp[ { -y, x}][1]++;
			else mp[ {x, y}][0]++;
		}
	}
	Z ans = 1;
	for (auto[_, t] : mp) {
		auto[x, y] = t;
		ans *= qpow(2, x) + qpow(2, y) - 1;
	}
	ans += Z(cnt - 1);

	cout << ans;
};


//我们可以提出最大公约数之后 用map<ar,int>cnt
// 那就是联通分量。。相乘不行吗
// https://www.cnblogs.com/myrcella/p/12913733.html
相关推荐
向阳@向远方1 小时前
第二章 简单程序设计
开发语言·c++·算法
github_czy2 小时前
RRF (Reciprocal Rank Fusion) 排序算法详解
算法·排序算法
许愿与你永世安宁2 小时前
力扣343 整数拆分
数据结构·算法·leetcode
爱coding的橙子2 小时前
每日算法刷题Day42 7.5:leetcode前缀和3道题,用时2h
算法·leetcode·职场和发展
满分观察网友z3 小时前
从一次手滑,我洞悉了用户输入的所有可能性(3330. 找到初始输入字符串 I)
算法
YuTaoShao3 小时前
【LeetCode 热题 100】73. 矩阵置零——(解法二)空间复杂度 O(1)
java·算法·leetcode·矩阵
Heartoxx3 小时前
c语言-指针(数组)练习2
c语言·数据结构·算法
大熊背4 小时前
图像处理专业书籍以及网络资源总结
人工智能·算法·microsoft
满分观察网友z4 小时前
别怕树!一层一层剥开它的心:用BFS/DFS优雅计算层平均值(637. 二叉树的层平均值)
算法
杰克尼5 小时前
1. 两数之和 (leetcode)
数据结构·算法·leetcode