全局变量AC了,局部变量超时?

P1271 【深基9.例1】选举学生会

@[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


| 下一页