解题思路:桶储存,内部部依次比较,达到了K退出当前循环,这样做可以大大提高效率
参考代码:
#include <iostream> using namespace std; #include <vector> #include <algorithm> int main() { int N,D,K; cin>>N>>D>>K; //桶储存,内部部依次比较,达到了K退出当前循环,这样做可以大大提高效率 vector< int> all(N); //桶 vector< vector<int> > nums(100002); int a=0,b=0; for (int i=0;i<N;i++ ) { cin>>a>>b; nums[b].push_back(a); } for (int i=0;i<100002;i++) { //特殊情况,K==1 if (K==1&&nums[i].size()>=1) { cout<<i<<"\n"; continue; } if (nums[i].size()>=1) { int out=1; bool backnow=false; for (int j=0;j<nums[i].size();j++ ) { for (int m=0;m<nums[i].size()&&m!=j;m++ ) { if (abs(nums[i][j]-nums[i][m])<D) { if (++out>=K) { cout<<i<<"\n"; backnow=true; break; } } } if (backnow) { break; } } } } return 0; }
0.0分
1 人评分
时间转换 (Java代码)浏览:618 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:631 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:645 |
矩阵加法 (C语言代码)浏览:1769 |
简单的a+b (C语言代码)浏览:618 |
数组与指针的问题浏览:760 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:756 |
C二级辅导-等差数列 (C语言代码)浏览:806 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:636 |
简单的a+b (C语言代码)浏览:857 |