[2018年蓝桥杯]日志统计

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37360631/article/details/88758013

分析:重新写了一遍,和先前不同的是,先前是遍历每个时间点,判断一段时间内是否存在满足id点赞次数多于K的。这次是遍历每一个id,记录每一个id的点赞时间点,遍历时间点,看是否存在点赞次数多于K的。

#include<bits/stdc++.h>
#define maxn 10000
using namespace std;
vector<int> e[11000];
int n,d,k;
int judge(int x){
    int len=e[x].size();
    if(len<k) return 0;
    sort(e[x].begin(),e[x].end());
    int l=0,r=0,ans=0;
    while(l<=r&&r<len){
        ans++;
        if(ans>=k){
            if(e[x][r]-e[x][l]<d){
                return 1;
            }
            else{
                l++,ans--;
            }
        }
        r++;
    }
    return 0;
}
int main(){
    std::ios::sync_with_stdio(false);
    cin>>n>>d>>k;
    for(int i=0;i<n;i++){
        int ts,id;
        cin>>ts>>id;
        e[id].push_back(ts);
    }
    vector<int> ve;
    for(int i=1;i<=maxn;i++){
        int ans=judge(i);
        if(ans==0) continue;
        ve.push_back(i);
    }
    for(int i=0;i<ve.size();i++){
        cout<<ve[i]<<endl;
    }
    return 0;
}

分析:去年的蓝桥杯一道题目,今年重新写了一遍还是超时。qaq,等下午从新写一下吧。

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;
int n,k,d,ts,id;
int minn=inf,maxx=-inf;
vector<int> e[11000];
set<int> se;
int ha[11000],vis[11000];
int main(){
    std::ios::sync_with_stdio(false);
    cin>>n>>d>>k;
    for(int i=0;i<n;i++){
        cin>>ts>>id;
        e[ts].push_back(id);
        minn=min(minn,ts);
        maxx=max(maxx,ts);
    }
    for(int i=minn;i+d<=maxx+100;i++){
        memset(ha,0,sizeof(ha));
        for(int j=i;j<i+d;j++){
            for(int p=0;p<e[j].size();p++){
                int tt=e[j][p];
                if(!vis[tt]){
                    ha[tt]++;
                    if(ha[tt]>=k){
                        //cout<<tt<<endl;
                        se.insert(tt);
                        vis[tt]=1;
                    }
                }
            }
        }
    }

    set<int>::iterator ite;
    for(ite=se.begin();ite!=se.end();++ite){
        cout<<*ite<<endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_37360631/article/details/88758013