求助,找了好几遍都没有错

P1037 [NOIP2002 普及组] 产生数

您的vector没有赋初始空间,导致报错。 我修改后的版本:[AC记录](https://www.luogu.com.cn/record/147739923) `````cpp #include<bits/stdc++.h> using namespace std; int w[20],e[20]; int vis[65]; string s1; int k; vector<int> ans; int cnt; void dfs(int x){ cnt++; vis[x]=1; for(int i=1;i<=k;i++){ if(x==w[i]&&!vis[e[i]]){ dfs(e[i]); } } return; } vector<int> mul(vector<int>a,int b){ vector<int> c; long long t=0; for(int i=0;i<a.size();i++){ t+=a[i]*b; c.push_back(t%10); t/=10; } while(t){ c.push_back(t%10); t/=10; } while(c.size()>1&&c.back()==0) c.pop_back(); return c; } int main(){ ans.resize(100);//我加的 cin>>s1>>k; for(int i=1;i<=k;i++){ cin>>w[i]>>e[i]; } ans[0]=1; for(int i=0;i<s1.size();i++){ dfs(s1[i]-'0'); ans=mul(ans,cnt); cnt=0; memset(vis,0,sizeof(vis)); } for(int i=ans.size()-1;i>=0;i--)cout<<ans[i]; return 0; }
by NaraFluorine @ 2024-02-20 22:18:13


@[NaraFluorine](/user/375144) 过了,谢谢dalao
by __Kazuha__ @ 2024-02-21 08:27:53


啊我错了,不是空间的问题,是ans初始没东西导致乘法全部无效,我塞了一个1就没事了(惭愧)
by NaraFluorine @ 2024-03-21 09:31:48


|