蓝桥杯历届真题 日志统计【第九届】【省赛】【B组】
题目链接:http://lx.lanqiao.cn/problem.page?gpid=T2730
没有过多的技巧,我就是一个刷题的垃圾
1 #include<bits/stdc++.h> 2 using namespace std; 3 bool vis[100010]; 4 int ans; 5 struct node 6 { 7 int ts; 8 int id; 9 }a[100010]; 10 bool cmp(node a,node b)//先排个序,如果编号相同的话就按照时间大小排序,否则按编号大小排序 11 { 12 if(a.id==b.id) 13 return (a.ts<b.ts); 14 else 15 return a.id<b.id; 16 } 17 int n,d,k; 18 int main() 19 { 20 ios::sync_with_stdio(false); 21 cin>>n>>d>>k; 22 for(register int i=0;i<n;i++) 23 { 24 cin>>a[i].ts>>a[i].id; 25 } 26 sort(a,a+n,cmp);//排个序 27 for(register int i=0;i<n;i++) 28 { 29 ans=1;//它本身也是一个赞 30 if(!vis[a[i].id])// 没被标记过 31 { 32 for(register int j=i+1;j<n;j++) 33 { 34 if(a[i].id==a[j].id&&(a[j].ts<a[i].ts+d))//编号相等并且满足时间段 35 { 36 ans++; 37 } 38 if(ans==k||a[i].id!=a[j].id)//剪枝 39 break; 40 } 41 if(ans==k)//满足了最后的条件标记并且输出编号 42 { 43 vis[a[i].id]=true;//标记这个已经满足了 44 cout<<a[i].id<<endl;//输出 45 } 46 } 47 48 } 49 return 0; 50 }
本文来自博客园,作者:江上舟摇,转载请注明原文链接:https://www.cnblogs.com/LQS-blog/p/16036040.html