链接:
题意:
n个怪物,两个数组,一个存距离一个存速度,每分钟能杀一只怪,求怪物到达前最多能杀几只怪
解:
算一下到达的时间,然后从小到大排序
实际代码:
#include<bits/stdc++.h>
using namespace std;
int eliminateMaximum(vector<int>& dist, vector<int>& speed)
{
int lg=dist.size();
for(int i=0;i<lg;i++)
{
if(dist[i]%speed[i]==0) dist[i]=dist[i]/speed[i];
else dist[i]=dist[i]/speed[i]+1;
}
sort(dist.begin(),dist.end());
int ans=0;
for(int i=0;i<lg;i++)
{
if(dist[i]>=i) ans++;
else break;
}
return ans;
}
int main()
{
int n;cin>>n;
vector<int> dist,speed;
for(int i=0;i<=1;i++)
{
for(int j=0;j<n;j++)
{
int temp;cin>>temp;
if(i) speed.push_back(temp);
else dist.push_back(temp);
}
}
int ans=eliminateMaximum(dist,speed);
cout<<ans<<endl;
return 0;
}
限制:
n == dist.length == speed.length
1 <= n <= 105
1 <= dist[i], speed[i] <= 105