时间限制:2s 内存限制:32MB

问题描述

yyy对三角形非常感兴趣,他有n个木棍,他正在用这些木棍组成三角形。这时xxx拿了两根木棍过来,xxx希望yyy能给他一根木棍,使得xxx可以组成一个三角形。yyy想知道他有多少根木棍满足xxx的要求。

输入描述

第一行一个整数T(1≤T≤5)表示数据组数。

对于每组数据第一行两个整数n(1≤n≤〖10〗^5 ),q(1≤q≤〖10〗^5),分别表示yyy的木棍数量和xxx的询问次数。第二行n个用空格分开的整数L_i (1≤L_i≤〖10〗^9),分别表示yyy的n根木棍的长度。接下来q行,每行两个整数a,b(1≤a,b≤〖10〗^9),表示xxx每次询问两根木棍的长度。

输出描述

对于每组数据,输出q行,每行一个整数表示答案。

输入样例

1

7 2

2 8 5 1 10 5 9

3 9

6 5

输出样例

3

6

【题目链接】:

【题解】



三角形的三边要满足

a+b>c

a+c>b

b+c>a

则转换一下就是

  1. max(a-b,b-1)<c<a+b

排序后用二分搞出两个端点就可以了;



【完整代码】

  1. #include <bits/stdc++.h>
  2. #define rep1(i,a,b) for (int i = a;i <= b;i++)
  3. using namespace std;
  4. #define pb push_back;
  5. const int MAXN = 1e5+100;
  6. int n,q;
  7. int c[MAXN];
  8. int main()
  9. {
  10. //freopen("D:\\rush.txt","r",stdin);
  11. int T;
  12. scanf("%d",&T);
  13. while (T--)
  14. {
  15. scanf("%d%d",&n,&q);
  16. rep1(i,1,n)
  17. scanf("%d",&c[i]);
  18. sort(c+1,c+1+n);
  19. rep1(i,1,q)
  20. {
  21. int L,R,a,b;
  22. scanf("%d%d",&a,&b);
  23. L = max(b-a,a-b);
  24. R = a+b;
  25. int l = 0,r = n,ans1=0;
  26. while (l <= r)
  27. {
  28. int m = (l+r)>>1;
  29. if (L<c[m])
  30. {
  31. ans1 = m;
  32. r = m-1;
  33. }
  34. else
  35. l = m+1;
  36. }
  37. l = 0,r = n;
  38. int ans2=0;
  39. while (l <= r)
  40. {
  41. int m = (l+r)>>1;
  42. if (c[m]<R)
  43. {
  44. ans2 = m;
  45. l = m+1;
  46. }
  47. else
  48. r = m-1;
  49. }
  50. printf("%d\n",ans2-ans1+1);
  51. }
  52. }
  53. return 0;
  54. }

【C++竞赛 F】yyy的三角形的更多相关文章

  1. 牛客网-2018年湘潭大学程序设计竞赛-F

    题目链接:https://www.nowcoder.com/acm/contest/105/F 解题思路:这道题第一眼直接思路就是搜索,但想了半天没想到有什么好办法搜,然后就转成最短路写了, 因为多入 ...

  2. 江西财经大学第一届程序设计竞赛 F题 解方程

    链接:https://www.nowcoder.com/acm/contest/115/F来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  3. 西安电子科技大学第16届程序设计竞赛 F Operating System (unique() 去重函数)

    链接:https://www.nowcoder.com/acm/contest/107/F来源:牛客网 Operating System 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ ...

  4. 江西财经大学第一届程序设计竞赛 F

    链接:https://www.nowcoder.com/acm/contest/115/F来源:牛客网 题目描述 对于方程 2018 * x ^ 4 + 21 * x + 5 * x ^ 3 + 5 ...

  5. 吉首大学2019年程序设计竞赛-F 天花乱坠

    题目链接:https://ac.nowcoder.com/acm/contest/992/F 题意:给定正n边形,边长为100,以每条边的中点连线构成新的正n边形,无限循环下去,求所有边的长度和. 思 ...

  6. 2014年山东省第五届ACM大学生程序设计竞赛F题:Full Binary Tree

    题目描述 In computer science, a binary tree is a tree data structure in which each node has at most two ...

  7. “浪潮杯”第九届山东省ACM大学生程序设计竞赛 F: Four-tuples容斥定理

    题目 F : Four-tuples  输入 1 1 1 2 2 3 3 4 4 输出 1 题意 给l1, r1, l2, r2, l3, r3,  l4, r4​ , 八个数据, 要求输出在区间[l ...

  8. 湖南省第十二届大学生计算机程序设计竞赛 F 地铁 多源多汇最短路

    1808: 地铁 Description Bobo 居住在大城市 ICPCCamp. ICPCCamp 有 n 个地铁站,用 1,2,…,n 编号. m 段双向的地铁线路连接 n 个地铁站,其中第 i ...

  9. 2018年湘潭大学程序设计竞赛 F - maze

    把点抽出来 跑个最短路就好啦. #include<bits/stdc++.h> #define LL long long #define pii pair<int,int> # ...

随机推荐

  1. Day3上午解题报告

    预计分数:100+40+50=190 实际分数:100+40+50=190 T1 https://www.luogu.org/problem/show?pid=T15365 表示从来没做过博弈论的题, ...

  2. 《四》JAVA 字符输入输出流

    那么这篇博客我们讲的是字节输入输出流:Reader.Writer(下图红色长方形框内),红色椭圆框内是其典型实现(FileReader.FileWriter) ①.为什么要使用字符流? 因为使用字节流 ...

  3. vue的mode: 'history'模式

    const router = new VueRouter({ mode: 'history', routes: [...] }) 不用mode: 'history'的时候,页面url地址后面会加上一个 ...

  4. BZOJ2733: [HNOI2012]永无乡(线段树合并)

    Description 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可 以将这 n 座岛排名,名次用 1 到 n 来表示.某些岛之间由巨大的桥连接,通过桥可以 ...

  5. [JWT] JWT with HS256

    The advantages of JWT over traditional session based validation is: it effectively removing all auth ...

  6. 7,NULL与nullptr对比

    #include <iostream> #include <array> using namespace std; void show(int num) { cout < ...

  7. Android Studio将Eclipse的项目作为module的依赖库

    情形: 我们现在有一个eclipse的项目,我们想把这个项目作为android studio的module的一个依赖库. 以前我们在eclipse的时候常常是在一个工作区里面把一个A工程 as a l ...

  8. C语言库函数,头文件

    参看:https://zhidao.baidu.com/question/328173842.html 该文件包含了的C语言标准库函数的定义 stdlib.h里面定义了五种类型.一些宏和通用工具函数. ...

  9. C#集合类:动态数组、队列、栈、哈希表、字典

    1.动态数组:ArrayList 主要方法:Add.AddRange.RemoveAt.Remove 2.队列:Queue 主要方法:Enqueue入队列.Dequeue出队列.Peek返回Queue ...

  10. 【Codeforces Round #432 (Div. 1) A】 Five Dimensional Points

    [链接]点击打开链接 [题意] 给你n个5维的点. 然后让你以其中的某一个点作为起点a. 另选两个点b,c. 组成向量a->b,a->c 如果所有的a->b和a->c的夹角都是 ...