結果

問題 No.2418 情報通だよ!Nafmoくん
ユーザー 0214sh7
提出日時 2023-08-12 13:52:49
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 60 ms / 2,000 ms
コード長 2,005 bytes
コンパイル時間 1,881 ms
コンパイル使用メモリ 199,272 KB
最終ジャッジ日時 2025-02-16 03:49:18
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 21
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> PP;
//#define MOD 1000000007
#define MOD 998244353
#define INF 2305843009213693951
//#define INF 810114514
#define PI 3.141592653589
#define setdouble setprecision
#define REP(i,n) for(ll i=0;i<(n);++i)
#define OREP(i,n) for(ll i=1;i<=(n);++i)
#define RREP(i,n) for(ll i=(n)-1;i>=0;--i)
#define ALL(v) (v).begin(), (v).end()
#define GOODBYE do { cout << "-1" << endl; return 0; } while (false)
#define MM <<" "<<
#define Endl endl
#define debug true
#define debug2 false
class unionfind{
// Copyright (c) 2023 0214sh7
// https://github.com/0214sh7/library/
private:
std::vector<int> UF,rank,size_;
public:
void init(int N){
UF.clear();
rank.clear();
size_.clear();
for(int i=0;i<N;i++){
UF.push_back(i);
rank.push_back(0);
size_.push_back(1);
}
}
unionfind(int N){
init(N);
}
int root(int k){
if(UF[k]==k){
return k;
}else{
UF[k]=root(UF[k]);
return UF[k];
}
}
bool same(int p,int q){
return root(p)==root(q);
}
void unite(int P,int Q){
int p=root(P);
int q=root(Q);
if(p==q)return;
if(rank[p]<rank[q])std::swap(p,q);
UF[q]=p;
if(rank[p]==rank[q])rank[p]++;
size_[p] += size_[q];
size_[q] = 0;
}
int size(int k){
return size_[root(k)];
}
};
int main(void){
//cin.tie(nullptr);
//ios::sync_with_stdio(false);
ll N,M;
cin >> N >> M;
vector<ll> A(M),B(M);
REP(i,M){
cin >> A[i] >> B[i];
A[i]--;B[i]--;
}
unionfind UF(2*N);
REP(i,M){
UF.unite(A[i],B[i]);
}
ll Ans = 0;
REP(i,2*N){
if(i!=UF.root(i))continue;
if(UF.size(i)%2==1)Ans++;
}
Ans /= 2;
cout << Ans << endl;
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0