给定 n(n<=100) a[i]<=9 ,>=0 问是否可以把它分成相等的几块
http://codeforces.com/contest/1058/problem/C
思路 :完全暴力 , 和的最大不过是 9*100,然后判断和是否可能
#include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define fi first #define se second #define all(v) v.begin(),v.end() const int N = 1e5+4; const int INF =1E9+4; const ll mod =1e9+7; //http://codeforces.com/contest/1058/problem/C //暴力 枚举所有可能 int main(){ int n; cin>>n; int a[1111]; string s; cin>>s; for(int i=1;i<=n;++i) a[i] = s[i-1]-'0'; int ans; for(ans= 0;ans<=901;++ans){ bool f=true; int d=0; int k=0; for(int j=1;j<=n;++j){ d+=a[j]; if(d==ans){ d=0;k++; } if(d>ans){ f=false;break; } } if(d!=0 || k<=1)f=false; if(f)break; } if(ans>=901)cout<<"NO"<<endl; else cout<<"YES"<<endl; return 0; }