제출 #1303343

#제출 시각아이디문제언어결과실행 시간메모리
1303343zbyszkoBosses (BOI16_bosses)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;

using ull = unsigned long long;
using ll = long long;
#define x first
#define y second

vector<int> adj[5001];
bool visit[5001];
int dp[5001];

ll bdfs(int f,int n){
    memset(visit,false,5001);
    memset(dp,0,5001);
    vector<vector<int>> ch(n+1);
    int used=0;
    queue<int> q;
    q.push(f);
    visit[f]=true;
    used++;
    int v;
    while(!q.empty()){
        v=q.front();
        q.pop();
        for(int c:adj[v]){
            if(!visit[c]){
                visit[c]=true;
                ch[v].push_back(c);
                used++;
                q.push(c);
            }
        }
    }
    if(used<n){
        return LLONG_MAX;
    }
    ll sum=0;
    stack<tuple<int,int,bool>> s;
    s.push({f,-1,0});
    visit[f]=true;
    while(!s.empty()){
        auto [v,p,st]=s.top();
        s.pop();
        if(st==0){
            s.push({v,p,1});
            for(int c:ch[v]){
                if(c==p) continue;
                s.push({c,v,0});
            }
        }
        else{
            dp[v]=1;
            for(int c:ch[v]){
                if(c!=p){
                    dp[v]+=dp[c];
                }
            }
            sum+=dp[v];
        }
    }
    return sum;
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    int n;cin >> n;
    for(int i=1,k;i<=n;i++){
        cin >> k;
        for(int j=0,v;j<k;j++){
            cin >> v;
            adj[v].push_back(i);
        }
    }
    ll sum=LLONG_MAX;
    for(int i=1;i<=n;i++){
        sum=min(sum,bdfs(i,n));
    } 
    cout << sum;
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

bosses.cpp: In function 'll bdfs(int, int)':
bosses.cpp:14:12: error: reference to 'visit' is ambiguous
   14 |     memset(visit,false,5001);
      |            ^~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:80,
                 from bosses.cpp:1:
/usr/include/c++/13/variant:1891:5: note: candidates are: 'template<class _Res, class _Visitor, class ... _Variants> constexpr _Res std::visit(_Visitor&&, _Variants&& ...)'
 1891 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
/usr/include/c++/13/variant:1851:5: note:                 'template<class _Visitor, class ... _Variants> constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...)'
 1851 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
bosses.cpp:10:6: note:                 'bool visit [5001]'
   10 | bool visit[5001];
      |      ^~~~~
bosses.cpp:20:5: error: reference to 'visit' is ambiguous
   20 |     visit[f]=true;
      |     ^~~~~
/usr/include/c++/13/variant:1891:5: note: candidates are: 'template<class _Res, class _Visitor, class ... _Variants> constexpr _Res std::visit(_Visitor&&, _Variants&& ...)'
 1891 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
/usr/include/c++/13/variant:1851:5: note:                 'template<class _Visitor, class ... _Variants> constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...)'
 1851 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
bosses.cpp:10:6: note:                 'bool visit [5001]'
   10 | bool visit[5001];
      |      ^~~~~
bosses.cpp:27:17: error: reference to 'visit' is ambiguous
   27 |             if(!visit[c]){
      |                 ^~~~~
/usr/include/c++/13/variant:1891:5: note: candidates are: 'template<class _Res, class _Visitor, class ... _Variants> constexpr _Res std::visit(_Visitor&&, _Variants&& ...)'
 1891 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
/usr/include/c++/13/variant:1851:5: note:                 'template<class _Visitor, class ... _Variants> constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...)'
 1851 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
bosses.cpp:10:6: note:                 'bool visit [5001]'
   10 | bool visit[5001];
      |      ^~~~~
bosses.cpp:28:17: error: reference to 'visit' is ambiguous
   28 |                 visit[c]=true;
      |                 ^~~~~
/usr/include/c++/13/variant:1891:5: note: candidates are: 'template<class _Res, class _Visitor, class ... _Variants> constexpr _Res std::visit(_Visitor&&, _Variants&& ...)'
 1891 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
/usr/include/c++/13/variant:1851:5: note:                 'template<class _Visitor, class ... _Variants> constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...)'
 1851 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
bosses.cpp:10:6: note:                 'bool visit [5001]'
   10 | bool visit[5001];
      |      ^~~~~
bosses.cpp:41:5: error: reference to 'visit' is ambiguous
   41 |     visit[f]=true;
      |     ^~~~~
/usr/include/c++/13/variant:1891:5: note: candidates are: 'template<class _Res, class _Visitor, class ... _Variants> constexpr _Res std::visit(_Visitor&&, _Variants&& ...)'
 1891 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
/usr/include/c++/13/variant:1851:5: note:                 'template<class _Visitor, class ... _Variants> constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...)'
 1851 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
bosses.cpp:10:6: note:                 'bool visit [5001]'
   10 | bool visit[5001];
      |      ^~~~~