题目链接:点击这里

题目大意:
给出一个长度为 nnn 的序列 aaa ,有 qqq 次询问,每次询问含有一组 l,rl,rl,r 求 ala_lal​ 到 ara_rar​ 中是否能找出三条边使之构成三角形

题目分析:
我们先从暴力出发,我们发现:
对于一次询问的 l,rl,rl,r 我们将 ala_lal​ 到 ara_rar​ 进行从小到大的排序,然后逐个枚举相邻三个的元素,如果满足 a[i]+a[i+1]>a[i+2]a[i]+a[i+1]>a[i+2]a[i]+a[i+1]>a[i+2] 则可以构成三角形,如果 a[i]a[i]a[i] 和 a[i+1]a[i+1]a[i+1] 都不能和 a[i+2]a[i+2]a[i+2] 构成三角形那么其他的数更没办法满足两边之和大于 a[i+2]a[i+2]a[i+2] 。但是其复杂度是 O(nlogn)O(nlogn)O(nlogn) 是难以支持 qqq 次查询的
我们继续考虑优化 a[i]+a[i+1]>a[i+2]a[i]+a[i+1]>a[i+2]a[i]+a[i+1]>a[i+2] ,我们发现当让不等号为等号时有 a[i]+a[i+1]=a[i+2]a[i]+a[i+1]=a[i+2]a[i]+a[i+1]=a[i+2] 此式子为斐波那契数列的递推式,而我们知道斐波那契数列在第 464646 项的时候就爆 intintint 了,题目给出a[i]a[i]a[i] 的范围是 a[i]≤1e9a[i]\le 1e9a[i]≤1e9 ,因此当 r−l+1≥45r-l+1\ge 45r−l+1≥45 即区间长度大于 454545 时我们可以直接判断其可以找到三个元素使之作为三角形的三边,对于 r−l+1<45r-l+1< 45r−l+1<45 时用之前那个 nlognnlognnlogn 的方法暴力处理即可,其时间复杂度为 O(q45log45)O(q45log45)O(q45log45)

具体细节见代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<set>
#include<map>
#define ll long long
#define inf 0x3f3f3f3f
using namespace std;
int read()
{int res = 0,flag = 1;char ch = getchar();while(ch<'0' || ch>'9'){if(ch == '-') flag = -1;ch = getchar();}while(ch>='0' && ch<='9'){res = (res<<3)+(res<<1)+(ch^48);//res*10+ch-'0';ch = getchar();}return res*flag;
}
const int maxn = 1e5+5;
const int mod = 1e9+7;
const double pi = acos(-1);
const double eps = 1e-8;
int n,q,a[maxn],tmp[maxn];
int main()
{n = read();q = read();for(int i = 1;i <= n;i++)a[i] = read();while(q--){int l = read(),r = read();int len = r-l+1;if(len >= 45) {puts("clynb");continue;}if(len <= 2) {puts("clycdd");continue;}for(int i = 0;i < len;i++)tmp[i] = a[l+i];sort(tmp,tmp+len);bool flag = false;for(int i = 2;i < len;i++){if(tmp[i-2]+tmp[i-1] > tmp[i]){flag = true;break;}}if(flag) puts("clynb");else puts("clycdd");}return 0;
}

Cly的三角形 (思维+斐波那契)相关推荐

  1. python打九九乘法表上三角下三角_python经典练习题之九九乘法表、打印菱形、打印对顶三角形、斐波拉契数列、素数......

    CSDN 双十一 活动优惠提前抢!全站好课1元起,万券齐发折上折! 11.11 超值膨胀金[10元抵100元]限量发放!11月11日当天全站通用,更有机会享受折上折优惠!仅限299份,先到先得! 学学 ...

  2. python打九九乘法表上三角下三角_python经典练习题之九九乘法表、打印菱形、打印对顶三角形、斐波拉契数列、素数... - 小黑电脑...

    学学习简单的练习,学到后面会有越来越多的解法来写! 作业的目的是为了让大家熟悉程序语言,锻炼将思路转换成程序逻辑. 九九乘法表 help(print) 先思考能不能打印出方阵 # 1 方阵 # 1 方 ...

  3. matlab兔子繁殖问题,斐波那契数列在《疯狂动物城》兔子繁衍中的应用

    摘    要: 计算思维的构建有助于帮助学生将实际问题转换为透明易懂的框架算法, 并借助计算机解决.以电影<疯狂动物城>中的兔子繁殖问题为例, 引出斐波那契数列, 引导学生将数学表达式转化 ...

  4. 用程序猿思维、程序设计师思维两种方式写求斐波那契数列的方法。

    //用Java实现斐波那契数列(Fibonacci) public class Test {public int f(int n)//n代表第几个数字.程序返回它相应的值{return n>2? ...

  5. 斐波那契数列和帕斯卡三角形问题

    1.斐波那契数列:用for循环来求解 题目:斐波那契数列是自然序列,定义如下: F1=1 F2=1 ... Fn=Fn-1+Fn-2(n>2) 输出该数列的前n项 代码: #include< ...

  6. python打九九乘法表上三角下三角_Python-零基础自学系列之九九乘法表、打印菱形、打印对顶三角形、打印闪电、斐波拉契数列、素数...

    刚开学学习简单的练习,学到后面会有越来越多的解法来写! 作业的目的是为了让大家熟悉程序语言,锻炼将思路转换成程序逻辑. 九九乘法表 help(print) 先思考能不能打印出方阵 # 1 方阵 # 1 ...

  7. 计算斐波那契数列第100项(二维数组思维转换)

    斐波那契数列第100项肯定很多位,常规的数据类型肯定存储不下,所以!!要进行换个思路!!即二维数组 反正我觉得这样还挺方便的咯 用二维数组的每一行存储每一项的值,从每一行的最后一列开始,如果>1 ...

  8. 【王道思维扩展1】求解斐波那契数列的递归和非递归算法,并分析两种时间复杂度

    1.斐波那契数列 2.递归与非递归的实现 1).递归 时间复杂度O(2^N) #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #incl ...

  9. 关于斐波那契与三角形

    斐波那契的一个小性质:斐波那契数列中任意三个数字都不能组成三角形 定理:给出一个非空的由正整数组成的多重集合A,若A中的元素无法组成三角形的三边,则A中的最大元素maxA>=F(A),其中F(A ...

最新文章

  1. 注会用计算机,注会准备什么计算器?有型号要求吗?
  2. ZOUNDRY TEST
  3. ROW_NUMBER() OVER()函数用法;(分组,排序),partition by
  4. 皮一皮:听说这是功夫熊猫风的情侣酒店...
  5. wxWidgets:wxPropertyGrid概述
  6. 微服务框架下的思维变化-OSS.Core基础思路
  7. linux播放到设备,linux - 将字节流式传输到ALSA播放设备 - 堆栈内存溢出
  8. 全国各高校开学时间汇总!
  9. MYSQL - database 以及 table 的增删改查
  10. IP地址的分类,五分类编制CIDR以及子网的划分和子网掩码
  11. java程序员面试宝典第四版pdf下载
  12. ISO 2768-1 标准
  13. HTML5代码雨程序
  14. 第12课:JSP动作 Jsp include动作(JSP教程 JSP入门实战教程 黄菊华Java网站开发系列教程)
  15. LCC谐振变换器部分参数设计过程
  16. win10无限蓝屏_windows10系统蓝屏无限重启命令解决教程
  17. 一文讲清:对象存储、文件存储、块存储。绝对好文
  18. SysInfoTools MS SQL Transaction Log Recovery 22.0
  19. samba服务器介绍
  20. events(事件触发器)

热门文章

  1. python 英语分词_自然语言处理 | NLTK英文分词尝试
  2. 信息安全密码学:DES算法的核心 E盒、S盒、P盒
  3. 数学建模不会 LaTex 排版 | 教你如何在 Word 中优雅地使用漂亮的 LaTex 公式
  4. [Jquery]实现三个盒子两两交换的考眼力游戏
  5. LeetCode刷题笔记——001两数之和
  6. ABBYY FastML:一种用于大型文档流处理的客户端机器学习新方案。
  7. 直播报名 | Apache Kylin Meetup
  8. 关于StringUtils的各种方法的功能、解析
  9. 庖丁解牛式读《Attention is all your need》
  10. 没别的,就聊聊数据通信网络