lambda表达式报错[Error] use of deleted function 'solve()::<lambda(auto:1, int, int)>::~<lambda>()'解决办法
解决办法
不能用变量来开数组,如将下面代码中int size[n+1]改为int size[40000];
#include<bits/stdc++.h>
using namespace std;
void solve(){
int n;
cin>>n;
int size[n+1];
vector<vector<int> >a(n+1);
for(int i=1;i<n;i++){
int u,v;
cin>>u>>v;
a[u].push_back(v);
a[v].push_back(u);
}
auto dfs=[&](auto self,int x,int y)->void{
size[x]=1;
for(auto i:a[x]){
if(i==y)continue;
self(self,i,x);
size[x]+=size[i];
}
};
dfs(dfs,1,0);
cout<<size[1]<<endl;
}
signed main() {
ios::sync_with_stdio(0);
cout.tie(0),cin.tie(0);
int test=1;
//cin>>test;
while(test--)
solve();
return 0;
}
int