题解:P13288 [GCJ 2013 #1B] Osmos
题解:P13288 [GCJ 2013 #1B] Osmos
题目Link
思路
首先简化题意为:给定一个数
考虑贪心。先对数组
时间复杂度为
Code
#include<bits/stdc++.h>
#define int long long
using namespace std;
int t,n,a,m[105];
int sol()
{
cin>>a>>n;
for(int i=1;i<=n;i++) cin>>m[i];
sort(m+1,m+n+1);
int ans=n,op=0;
if(a==1) return ans;
for(int i=1;i<=n;i++){
while(a<=m[i]){
a+=a-1;
op++;
}
a+=m[i];
ans=min(ans,op+n-i);
}
return ans;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>t;
for(int i=1;i<=t;i++)
cout<<"Case #"<<i<<": "<<sol()<<'\n';
return 0;
}