2018年蓝桥杯省赛C++ B组 ——日志统计

题目链接

解题思路:

就是用 vector 然后暴力就可

关于vector 

用到的地方还真是蛮多的

它是一个动态数组   可以存放任意类型

例如:

vector <int>  a;     

a.push_back(1)   把1压入vector   那么 a[0] 就是 1   (下标从0开始

 vector <int> a[10] 

a[i].push_back(1)  把1 压入vector  那么 a [i] [0] 就是 1 

a[i].push_back(2)   a[i] [1] 就是 2    

代码如下:

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
const int maxn=1e5+10;
vector<int> a[maxn];
int k,d;
int f(int x)
{
	int s=a[x].size();
	if(s<k)
	  return 0;
	sort(a[x].begin(),a[x].end());
	for(int i=0;i+k-1<s;i++)
	{
		if(a[x][i+k-1]-a[x][i]<d)
		{
			return 1;
		}
	}
	return 0;
}
int main()
{
	int t,x,n;
	int i;
	cin>>n>>d>>k;
	for(i=0;i<n;i++)
	{
		cin>>t>>x;
		a[x].push_back(t);
	}
	for(i=0;i<maxn;i++)//测试每个id 
	{
		if(f(i))
		  cout<<i<<endl;
	}
	return  0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43819762/article/details/109104142