为什么我用 map 来去重会锅啊
查看原帖
为什么我用 map 来去重会锅啊
52243
RenaMoe楼主2021/3/29 18:37

为了去掉重复的点,我一开始犯懒就拿了个 map,一直 WA #3,#8评测记录

struct Point {
	int a, b, c, d, op;
	Point() {}
	Point(int _a, int _b, int _c, int _d): a(_a), b(_b), c(_c), d(_d) {}
	friend bool operator <(const Point &x, const Point &y) {
		if (x.a ^ y.a) return x.a < y.a;
		if (x.b ^ y.b) return x.b < y.b;
		if (x.c ^ y.c) return x.c < y.c;
		return x.d < y.d;
	}
};

还是我下面用的时候写挂了啊?

	for (int i = 1; i <= n; ++i) {
		Point x;
		cin >> x.a >> x.b >> x.c >> x.d;
		if (!mp.count(x)) {
			a[++tn] = x;
			mp[x] = tn;
			cnt[tn] = 1;
		}
		else ++cnt[mp[x]];
	}

这么写有什么问题啊? klklkl

2021/3/29 18:37
加载中...