啊?建议加强数据!!!
查看原帖
啊?建议加强数据!!!
895690
gghack_Nythix楼主2024/7/10 14:32

乱写了一个贪心,怎么就过了?

#include<bits/stdc++.h>
using namespace std;
class Merge_Set{
	public:
		int s[100005];
		void init(int sz){for(int i = 0;i <= sz;++i)s[i] = i;}
		int find(int x){return s[x] == x?s[x]:s[x] = find(s[x]);}
		void merge(int x,int y){s[x] = y;}
	private:
}q;
struct node{
	int x,y;
	bool operator < (const node & hh)const{
		return x==hh.x?y>hh.y:x<hh.x;
	}	
}a[2000005];
bool vis[2000005];
signed main(){
	int n;
	cin >> n;
	for(int i = 1;i <= n;++i) {cin >> a[i].x >> a[i].y;if(a[i].x > a[i].y) swap(a[i].x,a[i].y);}
	sort(a + 1,a + n + 1);
	if(!(n & 1) || (n < 20 && a[i].y <= 5)){
		for(int i = 1;i <= n;) {
			swap(a[i].y,a[i + 1].y);
			if(i & 1) i += 5;
			else i += 2;
		}
	}
	for(int i = 1;i <= n;++i){
		if(!vis[a[i].x])vis[a[i].x] = 1;
		else vis[a[i].y] = 1;
	}
	for(int i = 1;i <= n + 1;++i) if(!vis[i]) return cout << i - 1,0;
	return 0;
}
2024/7/10 14:32
加载中...