1 solutions
-
1
我来交个题解玩玩。
#include<bits/stdc++.h> using namespace std; int a[1000111],s=0; int t,n,p; int main() { cin>>t; for(int i=1;i<=t;i++) { cin>>n;s=0;//这里的清零很重要 for(int j=1;j<=n;j++) { cin>>a[j]; s+=a[j];//求所有数之和 } for(int j=n;j>=1;j--)//因为要最少步骤,从最大的遍历 { if(s%j==0) { int mid=s/j,flag=1,cnm=0,ans=0; for(int k=1;k<=n;k++)//判断是否可行 { cnm+=a[k]; if(cnm>mid) { flag=0; break; } else if(cnm==mid){ cnm=0; } } if(flag==1){cout<<n-j<<endl;break;} } } } return 0;//完结撒花🎉️ }如果看不懂也没关系,
我瞎写的。
- 1
Information
- ID
- 524
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- # Submissions
- 4
- Accepted
- 4
- Uploaded By