摘要

题目链接 难度等级 完成状态 完成分数 最后编辑时间 失误原因(初次提交分数)
Fly, freebies, fly! ★☆☆☆☆ 答案正确 100 2015-02-26 14:59:27 遗漏情况(27)

题意

线段上n个点,问长L的线段最多覆盖到几个点。

题解

  • 排序,然后按顺序双指针判断即可。

代码

386B.cpp代码已折叠
展开折叠内容
显示/移除行号
  1. #include<cstdio>
  2. #include<iostream>
  3. #include<string>
  4. #include<vector>
  5. #include<iomanip>
  6. #include<algorithm>
  7. #include<cstring>
  8. #include<cmath>
  9. #include<bitset>
  10. #include<set>
  11. #include<sstream>
  12. #include<utility>
  13. using namespace std;
  14. //数据类型//
  15. #define llu unsigned long long
  16. #define lld long long
  17. //定义默认类型//
  18. typedef lld num;
  19. #define dsi(n) num n;scanf("%lld",&n)
  20. #define si(n) scanf("%lld",&n)
  21. //其它//
  22. #define reset(x) memset(x,0,sizeof(x))
  23. #define ci const num&
  24. #define sqr(x) ((x)*(x))
  25. #define f(i,n) for(num i=1;i<=n;++i)
  26. #define ff(i,r,n) for(num i=r;i<=n;++i)
  27. #define fi(n) f(i,n)
  28. #define f0(i,n) for(num i=0;i!=n;++i)
  29. #define fd(i,n) for(num i=n;i>=1;--i)
  30. #define foreach(i,s) for(typeof(s.begin()) i=s.begin();i!=s.end();++i)
  31. #define rforeach(i,s) for(typeof(s.rbegin()) i=s.rbegin();i!=s.rend();++i)
  32. #define iforeach(i,s) int idx=0;for(typeof(s.begin()) i=s.begin();i!=s.end();++i,++idx)
  33. #define Vector2 pair<num,num>
  34. #define vector2(x,y) make_pair(x,y)
  35. #define x first
  36. #define y second
  37. vector<num> a;
  38. num ans=0;
  39. int main()
  40. {
  41. dsi(n);
  42. fi(n)
  43. {
  44. dsi(u);
  45. a.push_back(u);
  46. }
  47. dsi(t);
  48. sort(a.begin(),a.end());
  49. for(num i=0,j=0;i<n&&j<n;++i)//fixed:j=1->0 错误数据1 1 0//
  50. {
  51. while(a[j]-a[i]<=t&&j<n)
  52. {
  53. ++j;
  54. }
  55. ans=max(j-1-i+1,ans);
  56. //cout<<a[i]<<" "<<a[j]<<j<<endl;
  57. }
  58. cout<<ans;
  59. return 0;
  60. }
  61.  

著作权声明[编辑]

关于[编辑]