1 条题解

  • 0
    @ 2025-8-24 22:41:11

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar jb123456
    **

    搬运于2025-08-24 22:41:11,当前版本为作者最后更新于2023-04-05 12:03:52,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    暴力 排序把每个 idid 相同的找出,用指针记录相同时间最后位置都成立的位置。 因为排序把 tsts 按从小到大排序过了,所以不需要考虑 tsts 的大小。

    #include<bits/stdc++.h>
    using namespace std;
    struct o{
    	int a,b;
    }a[100005];
    int n,d,k;
    int cmp(o x,o y){
    	if(x.b!=y.b)return x.b<y.b;
    	return x.a<y.a;
    }
    int f1(int x,int y){
    	int r=x;
    	for(int i=x;i<=y;i++){
    		while(a[r+1].a-a[i].a<d&&r<y)r++;//找最后一个时间和位置都成立的位置
    		if(r-i+1>=k)return 1;//判断位置是i时是否是热帖
    	}
    	return 0;
    }
    int main()
    {
    	cin>>n>>d>>k;
    	for(int i=1;i<=n;i++){
    		cin>>a[i].a>>a[i].b;
    	}
    	sort(a+1,a+n+1,cmp);
    	for(int i=1;i<=n;i++){
    		int r=i;
    		while(a[r+1].b==a[i].b)r++;//找到最后一个id相同的位置 
    		if(f1(i,r)){//判断i到r可不可以是热帖 
    			cout<<a[i].b<<endl;
    		}
    		i=r;
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    5971
    时间
    1000ms
    内存
    256MiB
    难度
    3
    标签
    递交数
    0
    已通过
    0
    上传者