题意:
这破题的意思坑...
大概就是有一些链,每个链Li个串,每分钟可以从其中一个链中拆出一个串,并以这个链连接两个不同的链。求出最少时间使得所有链合并为一个链。
分析:
贪心,每次断最小的,连最大的就行。
这破题的意思坑...
大概就是有一些链,每个链Li个串,每分钟可以从其中一个链中拆出一个串,并以这个链连接两个不同的链。求出最少时间使得所有链合并为一个链。
分析:
贪心,每次断最小的,连最大的就行。
#include <cstdio>
#include <algorithm>
using namespace std;
const int MAXN = 109;
int n, chain[MAXN];
int main()
{
int ans = 0;
scanf("%d", &n);
for(int i = 1; i <= n; ++i)
scanf("%d", chain+i);
sort(chain+1, chain+n+1);
for(int i = 1, j = n; i < j;)
{
chain[i]--;j--;
if(!chain[i]) i++;
ans++;
}
printf("%d\n", ans);
return 0;
}