Problem 1108

 1 #include<iostream>
 2 #include<vector>
 3 #include<algorithm>
 4 using namespace std;
 5 
 6 struct GT_cls   //创建函数对象
 7 {
 8 public:
 9     GT_cls(int t=0):a(t){}
10 
11     bool operator()(int x)
12     {
13         return x>a;
14     }
15 private:
16     int a;
17 };
18 
19 int main()
20 {
21     int T,N,M;
22     cin>>T;
23     for(int i=0; i<T; i++)
24     {
25         cin>>N>>M;
26         vector<int> eigenval(N);
27         for(int j=0; j<N; j++)
28             cin>>eigenval[j];
29 
30         sort(eigenval.begin(), eigenval.end());  //从小到大排序
31 
32         int max=1;
33         for(int j=0; j<N-1; j++)
34         {
35             vector<int>::iterator it = find_if(eigenval.begin()+j, eigenval.end(), GT_cls(eigenval[j]+M)); //所选取的几种化合物只要满足最小特征值和最大特征值不大于阈值M即可
36             unsigned num = it-(eigenval.begin()+j);
37             if(num>max)
38                 max = num;
39         }
40         cout<<max<<endl;
41     }
42     return 0;
43 }
原文地址:https://www.cnblogs.com/Marrybe/p/3823377.html