点击打开链接

孙云球
Description
大家一起来玩孙云球吧。
众所周知,孙云球是一种好玩有炫酷的球类游戏,由编程始祖 SLF 发明。但是评价一个
球队的战力是的特殊的,给定 n 个人,每个人的身高是 a[i],每有一个三个人的组合
(x,y,z)满足以下条件即可提供 1 的战斗力。条件如下:
1. a[x] < a[y] < a[z]
2. a[y] – a[x] ≤ a[z] – a[y] ≤ 2 * (a[y] – a[x])
SLF 同志的号召能力非常强大,组建的队伍身高千奇百怪,有 1cm 的也有 100km 的。但是,
他迫切期待他组建的这支球队的战力,你能告诉他吗?
Input
第一行一个数 n,表示球队的人数。
接下来 n 行每行一个数,a[i]表示每个人的身高(1 ≤ a[i]≤ 10^9)
Output
一行一个数,表示 SLF 战队的战斗力。
Sample Input
5
3
1
10
7
4
Sample Output
4
Hint
样例解释:1-3-7, 1-4-7, 4-7-10, and 1-4-10

对于 100%的数据,1 ≤ n ≤ 1000

思路
直接枚举算了一下是1e9数量级的,肯定会超时
结果交上去试了一下竟然过了(760ms),可见数据比较水

考虑二分进行优化
利用c++ stl中的函数lower_bound :

ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)返回一个非递减序列[first, last)中的第一个大于等于值val的位置。
注:调用lower_bound之前必须确定序列为有序序列,这也是二分的基础

另外要注意下标的边界情况,有效的范围是0~n-1

代码示例

#include<bits/stdc++.h>
using namespace std;
const int maxn=1000;
int a[maxn+50];
int n;int main()
{scanf("%d",&n);for(int i=0;i<n;++i) scanf("%d",&a[i]);sort(a,a+n);long long ans=0;for(int i=0;i<n;++i){for(int j=i+1;j<n;++j){int l=lower_bound(a,a+n,2*a[j]-a[i])-a;int r=lower_bound(a,a+n,3*a[j]-2*a[i])-a;if(a[r]>3*a[j]-2*a[i]) --r;l=max(l,j+1);r=min(r,n-1);if(l>n-1) continue;ans+=r-l+1; }}printf("%lld\n",ans);return 0;
} 

孙云球(二分枚举)(AOJ 851)相关推荐

  1. 二分枚举+贪心(nyist疯牛)

    点我啊~带你去找它\(^o^)/~ 一开始一点思路都没有,压根不知道它要求的是什么,然后问了一下班长,才明白题目的意思就是,给你N个点,要你找出最优解的C点,言简意赅的即使说区间选点. 思路: 假设两 ...

  2. poj 2455 Secret Milking Machine(二分枚举+最大流)

    题意: 题意:FJ有N块地,这些地之间有P条双向路,每条路的都有固定的长度l.现在要你找出从第1块地到第n块地的T条不同路径,每条路径上的路不能与先前的路径重复,问这些路径中的最长路的最小是多少. 思 ...

  3. HDOJ---2236 无题II[二分枚举+匈牙利]

    无题II Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  4. Brownie Slicing(二分枚举答案)

    描述 Bessie has baked a rectangular brownie that can be thought of as an RxC grid (1 <= R <= 500 ...

  5. POJ 2455 Secret Milking Machine 二分枚举 + 最大流

    题目:http://poj.org/problem?id=2455 题意:给定一张无向图,有n个节点p条边,要求在图中从1到n找到t条路径,并且使这t条路径中的最长边最小,输出这个最小的最长边 思路: ...

  6. ⭐算法入门⭐《二分枚举》简单15 —— LeetCode LCP 18. 早餐组合

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   小扣在秋日市集选择了一 ...

  7. 【二分枚举】04:网线主管

    还是二分搜索枚举解空间的题目. 代码思路基本上就是,找到解空间的上下限[base,top],然后main函数里面进行二分枚举,另外需要写一个判断某个值是否合法的函数. 04:网线主管 总时间限制:  ...

  8. [Codeforces Round #635 (div2)]1337D - Xenia and Colorful Gems[二分][枚举]

    1337D - Xenia and Colorful Gems[二分][枚举] time limit per test memory limit per test input output 3 sec ...

  9. 转贴:孙云丰,你让我感到恶心 --鉴于google的退出,正好是写出了心中所想

    百度首席产品设计师孙云丰写到  "Google市侩,我感到恶心" (全文见 http://www.douban.com/note/56797811/ ) 他这样写到 "& ...

最新文章

  1. 今晚有直播 | 全国大学生智能汽车竞赛人工智能创意赛来啦!
  2. FPGA底层资源介绍
  3. 为什么很多人喜欢把软件装在D盘,而不是系统盘C
  4. Retrofit 入门和提高
  5. leetcode算法题--不同的二叉搜索树 II
  6. 读书笔记 UltraGrid(6)
  7. 成功解决运行tensorflow时ModuleNotFoundError: No module named ‘numpy.core._multiarray_umath‘
  8. 使用WebRTC开发Android Messenger:第2部分
  9. C++ new/new operator、operator new、placement new初识
  10. Bailian4004 数字组合【递归+DP】
  11. 关于Shell脚本执行python代码,出现No such file or directorython: can't open file的问题
  12. tps协议和onvif协议_摄像头ONVIF协议,到底啥是ONVIF,又是啥意思?
  13. Android实现QQ音乐QMC格式转MP3格式
  14. logback配置详解
  15. NYOJ 366 STL 全排列
  16. html 自适应 音乐播放器,mmPlayer:一款基于Vue的自适应Web在线音乐播放器
  17. Step05:爬虫小项目,爬取最新电影迅雷下载地址
  18. 好用的识别植物的软件app合集分享,快码住了
  19. 超声波的四个特性_超声波有什么特点
  20. 新房装修|厨房台面给我做高了10公分,做饭不方便

热门文章

  1. 《开学第一课》心得感悟
  2. BERTopic:NLP主题模型的未来!
  3. Mathtype基本使用
  4. ext 2.0 Combos 使用指南
  5. STM32失真度仪及示波器
  6. 香港AfterShip 爱客科技(深圳)有限公司
  7. 推荐一款开源的图片无损放大神器
  8. 基于at89c52单片机温湿度c语言,基于AT89C52单片机的温度监控报警系统的设计
  9. 职场无忧-SolidWorks 2008中文版零件+模具设计技法与典型实例
  10. Vue3 -- Mixin混入