【Codeforce】Round #512 (Div. 2)Vasya and Golden Ticket(思维,暴力)

    xiaoxiao2022-07-13  158

    题目链接

    题目大意:给你一串数字,问你能不能把这一串数字分割成一块的数字的和都相等的片段,至少两片

    思路:这个题目,当时也是没做出来吧,思路上面的话,就是把所有可能的答案都枚举一遍,

    这个的话,之前是用的枚举前面几个,然后把前面几个的和加起来看看能不能到最后分片成功,

    代码:

    #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> using namespace std; const int maxn=100+10; char str[maxn]; int a[maxn]; int main() { int n; scanf("%d",&n); scanf("%s",str); int sum=0; for(int i=1;i<=n;i++) a[i]=str[i-1]-'0',sum+=a[i]; if(sum==0) { printf("YES\n"); return 0; } for(int i=1;i<sum;i++) { if(sum%i!=0) continue; int cnt=0; for(int j=1;j<=n;j++) { cnt+=a[j]; if(cnt==i) { cnt=0; } else if(cnt>i) break; } if(cnt==0) { printf("YES\n"); return 0; } } printf("No\n"); }

     

    最新回复(0)