1129. Recommendation System (25)

来源:互联网 发布:铣床和车床编程区别 编辑:程序博客网 时间:2024/05/16 15:49
#include<cstdio>#include<set>const int maxn=50010;using namespace std;struct Node{    int data,cnt;    Node(int x,int y){        data=x,cnt=y;    }    friend bool operator < (Node a,Node b){        if(a.cnt!=b.cnt) return a.cnt>b.cnt;        else return a.data<b.data;    }//  bool operator< (const Node &a) const{//      if(data!=a.data) return data>a.data;//      else return cnt<a.cnt;//  }};int cnt[maxn];int main(){    int n,k;    set<Node> mst;    scanf("%d%d",&n,&k);    for(int i=0;i<n;i++){        int t;        scanf("%d",&t);        if(i>0){            printf("%d:",t);            int s=0;            for(set<Node>::iterator it=mst.begin();it!=mst.end()&&s<k;it++,s++){                printf(" %d",it->data);            }            printf("\n");        }//      set<Node>::iterator it=mst.find(Node(t,cnt[t]));//      if(it!=mst.end()) mst.erase(it);        if(mst.find(Node(t,cnt[t]))!=mst.end()) mst.erase(Node(t,cnt[t]));        mst.insert(Node(t,++cnt[t]));    }    return 0;   }
原创粉丝点击