比赛 |
Asm.Def战记之圣地亚哥“杯2015 |
评测结果 |
AAAAAAAAAA |
题目名称 |
Asm.Def的游戏 |
最终得分 |
100 |
用户昵称 |
Fmuckss |
运行时间 |
0.136 s |
代码语言 |
C++ |
内存使用 |
2.22 MiB |
提交时间 |
2015-10-31 11:49:05 |
显示代码纯文本
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<stdlib.h>
#include<string>
#include<string.h>
#include<vector>
#include<map>
#include<queue>
#define maxn 100050
using namespace std;
int n,m;
int ans=0;
queue<int> q;
struct node{
vector <int> ne;
int tot;
bool del;
}ns[maxn];
void read(){
scanf("%d %d",&n,&m);
for(int i=1;i<=m;i++){
int a,b;
scanf("%d %d",&a,&b);
ns[a].ne.push_back(b);
ns[b].ne.push_back(a);
ns[a].tot++;
ns[b].tot++;
}
}
void del(){
while(!q.empty()){
int tmp=q.front();
q.pop();
if(ns[tmp].del)continue;
ns[tmp].del=true;
for(int i=0;i<ns[tmp].ne.size();i++){
if(ns[ns[tmp].ne[i]].del) continue;
ns[ns[tmp].ne[i]].tot--;
if(ns[ns[tmp].ne[i]].tot<=2)
q.push(ns[tmp].ne[i]);
}
}
}
void solve(){
for(int i=1;i<=n;i++){
if(ns[i].tot<3){
q.push(i);
}
}
del();
for(int i=1;i<=n;i++){
if(!ns[i].del) ans^=i;
}
}
int main(){
freopen("asm_game.in","r",stdin);
freopen("asm_game.out","w",stdout);
read();
solve();
printf("%d",ans);
return 0;
}