码蹄杯 删数游戏 题型:模拟 难度:白银

43 阅读1分钟

码题集OJ-删数游戏 (matiji.net)

思想

这道题就是个模拟题,首先我们需要动态的维护一个最小值minn,然后a数组每个元素如果不是0,那么就删去minn

#include<bits/stdc++.h>
using namespace std;
int n,k;
const int N=1010;
int a[N];

int main()
{
	cin>>n>>k; 
	for(int i=1;i<=n;i++)cin>>a[i]; 
	
	
	while(k--)
	{
		int minn=0;
		for(int i=1;i<=n;i++)
		{
			if(a[i]==0)continue;//如果最小值不为0,那么我们就可以接着求最小值
			
			if(minn) 
			{
				minn=min(minn,a[i]);
			}
		   else
			{
				minn=a[i];
			}
		}	
		for(int i=1;i<=n;i++)
			 if(a[i])a[i]-=minn;  //如果a[i]已经是0,那就跳过当前数,继续去减下一个 
			cout<<minn<<endl;
	}

	
	return 0;
}

image.png