没有长脑子,求骂醒
  • 板块P1484 种树
  • 楼主asdjfkl
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/4/16 16:55
  • 上次更新2024/4/16 19:37:06
查看原帖
没有长脑子,求骂醒
1099798
asdjfkl楼主2024/4/16 16:55

弱弱的问一句,直接这样子暴力难道不行吗,会有什么样的问题呢,以下是我的代码,求教求教

#include <iostream>
#include <algorithm>
using namespace std;

int n;
int k;
struct node{
	int num,sign;
}a[300005];
bool b[300005];
int cnt=0;
long long ans;
int cmp(const void* p1,const void* p2){
	return (((node*)p1)->num-((node*)p2)->num);
}

int main(){
	cin>>n>>k;
	for(int i=0;i<n;i++) cin>>a[i].num,a[i].sign=i;
	qsort(a,n,sizeof(a[0]),cmp);
	for(int i=n-1;cnt<k && i>=0;i--){
		if(a[i].num<=0) break;
		if(b[a[i].sign-1]==1 || b[a[i].sign+1]==1) continue;
		ans+=a[i].num;
		cnt++;
		b[a[i].sign]=1;
	}
	cout<<ans;
	return 0;
}
2024/4/16 16:55
加载中...