f(今天开学第一天)
洛谷算法标签:
这个题要用排序是真的很神奇;
首先我们来理解一下题意:首先蚂蚁们按血量接受打击【魔鬼操作】,血量最少的蚂蚁要走到最前面,所以我们可以用到sort(但不要忘记头文件#include<algorithm>)。所有塔集中打一个蚂蚁,如果蚂蚁血量为0以下(这是重点)塔才切换目标。当第r秒时,血量在0及0以上的蚂蚁将蛋糕搬回。问:最终蚂蚁家里会有多少块蛋糕?
这个题坑就坑当蚂蚁血量为0时还要再打一次蚂蚁,而不是算为死亡,题目要排序尽管不理解,但你也拿他没办法对吧?
ac代码如下:
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,k,w,r,c,b;
int a[];
int main()
{
cin>>n>>m>>k>>w>>r;
for(int i=;i<=n;i++)
cin>>a[i];
b=m/k;
c=b*w;
sort(a+,a+n+);
int j=;int sum=,i=;
while(i<=r)
{
i++;
a[j]-=c;
if(a[j]<)
{
j++;
}
} for(int i=;i<=n;i++)
if(a[i]>)sum++;
cout<<sum<<endl;
}
end-