結果
| 問題 | No.1610 She Loves Me, She Loves Me Not, ... | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2021-07-21 21:57:27 | 
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 4 ms / 2,000 ms | 
| コード長 | 908 bytes | 
| コンパイル時間 | 902 ms | 
| コンパイル使用メモリ | 76,260 KB | 
| 実行使用メモリ | 5,376 KB | 
| 最終ジャッジ日時 | 2024-07-17 18:13:04 | 
| 合計ジャッジ時間 | 2,194 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 4 | 
| other | AC * 32 | 
ソースコード
#include <iostream>
#include <string>
#include <vector>
#include <queue>
using namespace std;
const int maxn=5100;
vector<int> G[maxn];
queue<int> q;
int degree[maxn];
int main(){
    ios::sync_with_stdio(false);
    int N;int M;
    cin>>N>>M;
    for(int i=1;i<=M;i++){
        int a, b;
        cin>>a>>b;
        G[a].push_back(b);
        G[b].push_back(a);
        degree[a]+=1;
        degree[b]+=1;
    }
    for(int i=1;i<=N;i++){
        if(degree[i]==1)
            q.push(i);
    }
    int ans=0;
    while (!q.empty()){
        int t=q.front();
        if(degree[t]==0){
            q.pop();
            continue;;
        }
        ans+=1;
        q.pop();
        for(int to:G[t]){
            degree[to]-=1;
            if(degree[to]==1)
                q.push(to);
        }
    }
    if(ans%2==1){
        cout<<"Yes"<<endl;
    }else{
        cout<<"No"<<endl;
    }
    return 0;
}
            
            
            
        