比赛 |
Asm.Def战记之圣地亚哥“杯2015 |
评测结果 |
AAAAAAAAAA |
题目名称 |
Asm.Def的游戏 |
最终得分 |
100 |
用户昵称 |
rainy |
运行时间 |
0.194 s |
代码语言 |
C++ |
内存使用 |
16.91 MiB |
提交时间 |
2019-10-23 18:21:28 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
typedef long long int_t;
char getch(){ static char buf[100000],*s1,*s2; return (s1 == s2) && (s2 = (s1 = buf) + fread(buf,1,100000,stdin)),s1 == s2 ? EOF : *s1++; }
#ifdef local
#define getch getchar
#endif
int_t read(){
int_t x = 0, w = 1;char ch = 0;
while(!isdigit(ch)) {ch = getch(); if(ch == '-') w = -1;}
while(isdigit(ch)) x = x * 10 + ch - '0', ch = getch();
return x * w;
}
const int_t maxn = 100100;
vector<int_t> G[maxn];
int_t deg[maxn];
bool vised[maxn];
void gao(int_t n){
queue<int_t> que;
for(int_t i=1;i<=n;i++) if(deg[i] < 3) que.push(i);
while(!que.empty()){
int_t rt = que.front();que.pop();
if(vised[rt]) continue;
vised[rt] = true;
for(vector<int_t>::iterator it = G[rt].begin();it != G[rt].end();it++){
int_t to = *it;
if(vised[to]) continue;
deg[to]--; if(deg[to] < 3) que.push(to);
}
}
int_t ans = 0;
for(int_t i=1;i<=n;i++) if(!vised[i]) ans ^= i;
cout<<ans;
}
int main(){
freopen("asm_game.in","r",stdin);
freopen("asm_game.out","w",stdout);
int_t n = read(),m = read();
while(m--){
int_t u = read(),v = read();
deg[u]++; deg[v]++;
G[u].push_back(v);
G[v].push_back(u);
}
gao(n);
}