问题描述
我正在尝试解决的问题-
“您将获得一棵包含N个节点的根树。每个节点都包含一个小写字母。 您需要回答类型为u,c的Q查询,其中u是整数,c是小写字母。包含c的节点u的子树中的节点数被视为所有查询的答案。 “
#include<bits/stdc++.h>
using namespace std;
void count(vector<vector<int>> *v,int par,string s,int arr[][26])
{
if(v[par].size()==0)
{
arr[par][s[par-1]-'a']++;
return;
}
arr[par][s[par-1]-'a']++;
for(int i=0;i<v[par].size();i++)
{
count(&v,v[par][i],s,&arr);
for(int j=0;j<26;j++)
{
arr[par][j]=arr[v[par][i]][j]+arr[par][j];
}
}
}
int main()
{
int n,q,par,child,arr[100010][26]={};
char alphabet;
cin>>n>>q;
string s;
cin>>s;
vector<vector<int>> v={};
while(n--)
{
cin>>par>>child;
v[par].push_back(child);
}
count(&v,1,&arr);
while(q--)
{
cin>>par>>alphabet;
cout<<arr[par][alphabet-'a']<<"\n";
}
}
现在是错误
In function ‘void count(std::vector<std::vector<int> >*,int,std::__cxx11::string,int (*)[26])’:
13:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
15:28: error: no matching function for call to ‘count(std::vector<std::vector<int> >**,__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> > >::value_type&,std::__cxx11::string&,int (**)[26])’
4:6: note: candidate: void count(std::vector<std::vector<int> >*,int (*)[26])
4:6: note: no kNown conversion for argument 1 from ‘std::vector<std::vector<int> >**’ to ‘std::vector<std::vector<int> >*’
62:0,64,1:
3959:5: note: candidate: template<class _IIter,class _Tp> typename std::iterator_traits<_Iterator>::difference_type std::count(_IIter,_IIter,const _Tp&)
3959:5: note: template argument deduction/substitution Failed:
15:28: note: deduced conflicting types for parameter ‘_IIter’ (‘std::vector<std::vector<int> >**’ and ‘std::vector<int>’)
18:19: error: no match for ‘operator[]’ (operand types are ‘int (*)[26]’ and ‘__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> > >::value_type {aka std::vector<int>}’)
In function ‘int main()’:
35:19: error: no matching function for call to ‘count(std::vector<std::vector<int> >*,int (*)[100010][26])’
4:6: note: candidate: void count(std::vector<std::vector<int> >*,int (*)[26])
4:6: note: no kNown conversion for argument 4 from ‘int (*)[100010][26]’ to ‘int (*)[26]’
62:0,const _Tp&)
3959:5: note: template argument deduction/substitution Failed:
35:19: note: deduced conflicting types for parameter ‘_IIter’ (‘std::vector<std::vector<int> >*’ and ‘int’)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)