为什么你们只AC了前三个,我是只WA了前三个,来个大佬看看求求了QAQ

P3799 小 Y 拼木棒

@[AC_or_suicide](/user/1096827) 完帖已解决,楼主是杀比
by AC_or_suicide @ 2023-12-10 20:56:10


@[AC_or_suicide](/user/1096827) 所以为什么啊?我的也是前3组测试集WA(哭) 大佬看下代码行吗 ```cpp #include<bits/stdc++.h> #define ll long long using namespace std; const ll N = 1e6+1,mod = 1e9+7;//debug1.注意测试范围 ll a[N],s[N],n,i,ans,k,maxn; int main(){ ios::sync_with_stdio(false); cin.tie(0); ll sum1=0,sum=0,n,m; cin>>n;//输入木棒总数 for(i=1;i<=n;i++){ cin>>k;//输入当前木棒长度 s[k]++;//长度为k的木棒++ if(k>maxn && s[k]>1) maxn = k;//可以取到两个相同的木棒长度的最大值 } for(i=1;i<=maxn/2;i++){//从长度1开始遍历 if(s[i]==0) break;//如果当前长度没有木棒 for(k=i;k<maxn;k++){//另一根木棒遍历 if((k==i && s[k]==1)||s[k]==0)break;//如果当前长度不足以给它一根木棒 if(s[i+k]>1){//当两者之和的木棒长度存在且大于等于2时 if(i==k) ans+=s[i+k]*(s[i+k]-1)*s[i]*(s[i]-1)/4; else ans+=s[i+k]*(s[i+k]-1)*s[i]*s[k]/2; ans%=mod; } } } cout<<ans<<endl; return 0; } ```
by A4plusgod @ 2024-01-09 14:51:42


|