답안 #791752

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
791752 2023-07-24T09:34:43 Z dungz Museum (CEOI17_museum) C++17
컴파일 오류
0 ms 0 KB
#pragma GCC optimize ("O2")
#include<bits/stdc++.h>
using namespace std;
#define ll long long 
#define fi first
#define se second
#define endl '\n'
#define task "task"
#define task "task"
#define prll pair<ll,ll>
#define pb push_back
#define ld long double
const ll MIN=-1e18,MAX=1e18,MOD=1e9+7;
vector<pair<int,int>> a[10005];
vector<ll> f[10005];
vector<ll> f2[10005];
int n,m,st;
void dfs(int u,int par)
{
	f[u]=f2[u]={0,0};
	for(auto i:a[u])
	{
		if(i.fi!=par)
		{
			dfs(i.fi,u);
			int v=i.fi;
			vector<ll> inter(min((ll)m+1,(ll)f[u].size()+f[v].size()-1),MAX);
			vector<ll> inter2(min((ll)m+1,(ll)f2[u].size()+f2[v].size()-1),MAX);
			inter2[0]=inter[0]=inter[1]=inter2[1]=0;
			for(int j=1;j<f[u].size();j++)
			{
				for(int k=0;k<f[v].size();k++)
				{
					if(j+k>m+1) break;
					inter[j+k]=min(inter[j+k],f[u][j]+f[v][k]+i.se*2*(k!=0));
					inter2[j+k]=min(inter2[j+k],min(f[v][k],f2[v][k])+f[u][j]+i.se*(k!=0));
					// if(u==3 and v==7 and j+k==2) cout<<j<<" "<<k<<" "<<f[u][j]+f[v][k]+i.se*2*(k!=0)<<endl;
					inter2[j+k]=min(inter2[j+k],f2[u][j]+f[v][k]+i.se*2*(k!=0));
				}	
			}
			// if(u==3 and v==7 ) 
			// {
				// for(int j=0;j<inter.size();j++) cout<<j<<" "<<inter[j]<<endl;
				// cout<<inter.size();
			// }
			swap(f[u],inter);
			swap(f2[u],inter2);
		}
	}
}
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n>>m>>st;
	for(int i=1;i<=n-1;i++)
	{
		int x,y,z;
		cin>>x>>y>>z;
		a[x].push_back({y,z});
		a[y].push_back({x,z});
	}	
	dfs(st,0);
	// cout<<f2[7][5]<<endl;
	// cout<<st<<" "<<m;
	cout<<min(f[st][m],f2[st][m]);
}
/*

*/

Compilation message

museum.cpp: In function 'void dfs(int, int)':
museum.cpp:27:62: error: no matching function for call to 'min(long long int, long long unsigned int)'
   27 |    vector<ll> inter(min((ll)m+1,(ll)f[u].size()+f[v].size()-1),MAX);
      |                                                              ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from museum.cpp:2:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
museum.cpp:27:62: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'long long unsigned int')
   27 |    vector<ll> inter(min((ll)m+1,(ll)f[u].size()+f[v].size()-1),MAX);
      |                                                              ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from museum.cpp:2:
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
museum.cpp:27:62: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'long long unsigned int')
   27 |    vector<ll> inter(min((ll)m+1,(ll)f[u].size()+f[v].size()-1),MAX);
      |                                                              ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from museum.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
museum.cpp:27:62: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   27 |    vector<ll> inter(min((ll)m+1,(ll)f[u].size()+f[v].size()-1),MAX);
      |                                                              ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from museum.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
museum.cpp:27:62: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   27 |    vector<ll> inter(min((ll)m+1,(ll)f[u].size()+f[v].size()-1),MAX);
      |                                                              ^
museum.cpp:28:65: error: no matching function for call to 'min(long long int, long long unsigned int)'
   28 |    vector<ll> inter2(min((ll)m+1,(ll)f2[u].size()+f2[v].size()-1),MAX);
      |                                                                 ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from museum.cpp:2:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
museum.cpp:28:65: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'long long unsigned int')
   28 |    vector<ll> inter2(min((ll)m+1,(ll)f2[u].size()+f2[v].size()-1),MAX);
      |                                                                 ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from museum.cpp:2:
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
museum.cpp:28:65: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'long long unsigned int')
   28 |    vector<ll> inter2(min((ll)m+1,(ll)f2[u].size()+f2[v].size()-1),MAX);
      |                                                                 ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from museum.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
museum.cpp:28:65: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   28 |    vector<ll> inter2(min((ll)m+1,(ll)f2[u].size()+f2[v].size()-1),MAX);
      |                                                                 ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from museum.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
museum.cpp:28:65: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   28 |    vector<ll> inter2(min((ll)m+1,(ll)f2[u].size()+f2[v].size()-1),MAX);
      |                                                                 ^
museum.cpp:30:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |    for(int j=1;j<f[u].size();j++)
      |                ~^~~~~~~~~~~~
museum.cpp:32:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |     for(int k=0;k<f[v].size();k++)
      |                 ~^~~~~~~~~~~~