C++大蛇看过来!
  • 板块P1250 种树
  • 楼主___ZHY
  • 当前回复15
  • 已保存回复15
  • 发布时间2025/1/3 20:39
  • 上次更新2025/1/4 10:08:22
查看原帖
C++大蛇看过来!
1172677
___ZHY楼主2025/1/3 20:39
#include <bits/stdc++.h>
using namespace std;
struct ab{
	int bg,en,num;//开始坐标,结束坐标,建议中树的数量 
}a[114514];
bool cmp(ab x,ab y){
	return x.en<y.en;//贪心:结束坐标最靠前 
}
int main()
{
    int n,h,x[114514]/*街道*/,s=0,s2=0,s3=0,ans=0/*答案*/;
    cin>>n;
	cin>>h;
    for(int i=0;i<h;i++){
    	cin>>a[i].bg>>a[i].en>>a[i].num;
	}
	sort(a,a+h,cmp);
	for(int i=0;i<h;i++){
		s=0;//建议区间内初始树的数量 
		s3=0;//a[i].en-s3表植树的坐标(从后往前植树) 
		for(int j=a[i].bg;j<=a[i].en;j++){//判断建议区间内是否有树 
			if(x[j]==1) s++;
		}
		s2=s;//建议区间内树的数量 
		if(s2!=a[i].num){//如果建议区间内的树没有达到要求 
			while(s2<a[i].num){//植树知道满足要求 
				x[a[i].en-s3]=1;//植树 
				s2++;//建议区间内树的数量+1 
				s3++;//坐标往前推一个 
				ans++;
			}
		}
		else continue;//无用哈 
	}
	cout<<ans;
    return 0;
}

36分 记录详情

2025/1/3 20:39
加载中...