璟雯院

珺璟如晔,雯华若锦

用户工具

站点工具


icpc:problems:usaco22feb_sleeping_in_class_b
problems
名称Sleeping in Class B
题目编号USACO22FEB_B1
题目链接luogu.com.cn/…
来源USACO
算法分类枚举, 入门_循环
难易程度容易

Sleeping in Class B

想法

由于总数的和是不变的,所以枚举合并后的个数。然后再枚举合并的操作数。

代码实现

#include<iostream>
#include<vector>
using namespace std;
 
int main()
{
	int T;
	cin >> T;
	while(T--)
	{
		int n, sum = 0;
		cin >> n;
		vector<int>line(n);
		for (int i = 0; i < n; ++i) {
			cin >> line[i];
			sum += line[i];
		}
		for (int len = n; len >= 1; --len) {
			if(sum % len == 0)
			{
				int num = sum / len, cnt = 0;
				bool flag = true;
				for (int i = 0; i < n; ++i) {
					cnt += line[i];
					if(cnt == num)
						cnt = 0;
					if(cnt > num)
					{
						flag = false;
						break;
					}
				}
				if(flag)
				{
					cout << n - len << endl;
					break;
				}
			}
		}
	}
	return 0;
}
/app/www/public/data/pages/icpc/problems/usaco22feb_sleeping_in_class_b.txt · 最后更改: 2023/02/07 09:21 由 温婕莺