为什么不能去重
  • 板块P1904 天际线
  • 楼主huwenxin
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/13 15:21
  • 上次更新2025/1/13 18:35:03
查看原帖
为什么不能去重
734991
huwenxin楼主2025/1/13 15:21

这道题为什么去重了得80分,去掉unique就对了

//P1904 天际线
#include<iostream>
#include<algorithm>
using namespace std;
int const N=10010;
pair<int,int> p[N];
int alls[N],f[N];
int main()
{
	int l,h,r,n=0;
	while(cin>>l>>h>>r)
	{
		p[++n]={l,h},alls[n]=l; 
		p[++n]={r,0},alls[n]=r;
	}
	sort(alls+1,alls+1+n);
	int ln=unique(alls+1,alls+1+n)-alls-1;
	for(int i=1;i<=n;i+=2)
	{
		int l1=lower_bound(alls+1,alls+1+n,p[i].first)-alls;
		int r1=lower_bound(alls+1,alls+1+n,p[i+1].first)-alls;
		for(int j=l1;j<r1;j++)
			f[j]=max(f[j],p[i].second);
	}
	for(int i=1;i<=ln;i++)
		if(f[i]!=f[i-1])
			cout<<alls[i]<<' '<<f[i]<<' ';
	return 0;
}

2025/1/13 15:21
加载中...