1741C - Minimize the Thickness
作者:
MangoCat
,
2022-10-19 00:40:54
,
所有人可见
,
阅读 125
题目思路: 遍历区间长度,然后根据区间长度和 遍历时候存在答案然后记录最长的区间
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
const int N = 2010;
int nums[N];
int n;
int go(int i , int sum){
if(i == n) return 0;
for(int j = i + 1 , cur = 0 ; j <= n ; j++){
cur += nums[j-1];
if(cur > sum) return n;
if(cur == sum ) return max(j-i,go(j , cur));
}
return n;
}
int solve(){
int ans = n;
for(int len = 1 , sum = 0 ; len < n ; len++){
sum += nums[len-1];
ans = min(ans , go(0 , sum));
}
return ans;
}
int main(){
int T;
cin >> T;
while(T--){
cin >> n;
for(int i = 0 ; i < n ; i++) cin >> nums[i];
cout << solve() << endl;
}
return 0;
}