@[S_yzx](/user/1134151) 栈空间的蜜汁问题
by xk2013 @ 2024-03-13 21:43:28
定义在函数内的变量和数组未赋值时数值随机,需要清零
by han_zheng @ 2024-03-13 21:46:36
局部变量数组若不初始化则数组中的值会被分配为随机值,以下代码可A:
```cpp
#include <iostream>
using namespace std;
int main(){
int a[1000]={};
int n,m,temp;
cin>>n>>m;
for(int i=0;i<m;i++){
cin>>temp;
a[temp]++;
}
for(int i=0;i<1000;i++){
while(a[i]--){
cout<<i<<" ";
}
}
return 0;
}
```
by 杜都督 @ 2024-03-13 21:48:17
@[S_yzx](/user/1134151) 全局变量数组会被系统自动清零,所以可以不初始化
by 杜都督 @ 2024-03-13 21:49:50
@[杜都督](/user/39279) 可以求助一下这份代码的爆栈问题吗?
```cpp
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=5e5+5;
int T,n,a[N],f[N][2][3],ans;
vector<int>e[N];
void dfs(int u,int fa){
int tot=0,cnt=0,maxn1=0,maxn2=0,sum=0,ab=0;
cout<<114514<<"\n";
int js[N]={0};
for(int v:e[u]){
if(v==fa)continue;
tot++;
dfs(v,u);
js[++js[0]]=max(f[v][0][2],f[v][1][2]);
}if(!tot){
f[u][0][1]=f[u][1][1]=0,f[u][1][2]=f[u][0][2]=a[u];
return;
}
sort(js+1,js+1+js[0]);
for(int i=js[0];i;i--)
if(i>=js[0]-1||js[i]>=0)sum+=js[i],ab=i;
if(js[0]>=2&&fa!=-1)f[u][0][2]=sum+a[u];
if(js[0]>=3&&ab>js[0]-2)sum+=js[ab-1];
if(js[0]>=3)f[u][0][1]=sum+a[u];
else f[u][0][1]=0;
if(js[0]>=2)f[u][1][1]=max(0*1ll,js[js[0]]+js[js[0]-1]);
if(js[0]>=1&&fa!=-1)f[u][1][2]=js[js[0]];
}
signed main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>T;
while(T--){
cin>>n,ans=0;
for(int u=1;u<=n;u++)f[u][0][1]=f[u][0][2]=f[u][1][1]=f[u][1][2]=-1e18,e[u].clear();
for(int i=1;i<=n;i++)cin>>a[i];
for(int u,v,i=1;i<n;i++)cin>>u>>v,e[u].push_back(v),e[v].push_back(u);
dfs(1,-1);
for(int i=1;i<=n;i++)cout<<i<<" "<<f[i][0][1]<<" "<<f[i][1][1]<<" "<<f[i][0][2]<<" "<<f[i][1][2]<<"\n",ans=max(ans,max(f[i][0][1],f[i][1][1]));
cout<<ans<<"\n";
}
return 0;
}
```
by mayike @ 2024-03-13 21:52:08
主要是在函数里 `if` 判断问题导致的离奇爆栈
by mayike @ 2024-03-13 21:52:55
@[mayike](/user/1039406) 这是哪道题呢
by 杜都督 @ 2024-03-13 22:04:19
@[杜都督](/user/39279) emm,这道 https://www.luogu.com.cn/problem/CF1901E9
by mayike @ 2024-03-13 22:09:09
@[mayike](/user/1039406) 稍等我看一下
by 杜都督 @ 2024-03-13 22:16:26
@[mayike](/user/1039406) 今天有点晚了,明天起来我用电脑调一下
by 杜都督 @ 2024-03-13 22:52:23