难道我的这个贪心不行吗,样例过了但数据没过
查看原帖
难道我的这个贪心不行吗,样例过了但数据没过
1074812
Jared0503楼主2024/5/5 11:30

代码献上

#include<bits/stdc++.h>
using namespace std;
int n,k,maps[4010],maxn,tip,num;
int main()
{
	cin>>n>>k;
	for(int i=0;i<n;i++)
	{
		cin>>maps[i];
	}
	for(int i=0;i<k;i++) //k发子弹,打k次 
	{
		for(int j=0;j<n;j++)
		{
			if(maps[j]>maxn) 
			{
				maxn=maps[j],tip=j;
			} 
		}
		num+=maps[tip];
		if(tip-2<0)
		{
			maps[n-2]+=maps[n-1],maps[n-1]=maps[tip]=0;
		}
		if(tip+2>n)
		{
			maps[1]+=maps[0],maps[0]=maps[tip]=0;
		}
		maps[tip+2]+=maps[tip+1],maps[tip-2]+=maps[tip-1],maps[tip+1]=maps[tip]=maps[tip-1]=0; //计算结果 
	}
	cout<<num;
}

2024/5/5 11:30
加载中...