公式

E - グループ分けとウイルス感染 / Group Division and Virus Infection 解説 by physics0523


\(S_j\) の大きさが \(1\) であるようなウイルスについて、感染を防ぐ方法はありません。 逆に、 \(S_j\) の大きさが \(2\) 以上であるようなウイルスについて、全てのコンピュータを異なるグループに分けることで、感染を防ぐことができます。

よって、全てのコンピュータを異なるグループに分ける場合が最適で、この時感染するコンピュータは「そのコンピュータのみに感染するウイルスが存在する」ようなコンピュータです。

実装例 (C++):

#include<bits/stdc++.h>

using namespace std;

int main(){
  int N,M;
  cin >> N >> M;
  set<int> st;
  for(int i=0;i<M;i++){
    int k;
    cin >> k;
    vector<int> s(k);
    for(auto &nx : s){cin >> nx;}
    if(k==1){st.insert(s[0]);}
  }
  cout << st.size() << "\n";
  return 0;
}

投稿日時:
最終更新: