【CF#192 A】Funky Numbers (二分,查找,二元组)
题干:
As you very well know, this year's funkiest numbers are so called triangular numbers (that is, integers that are representable as , where k is some positive integer), and the coolest numbers are those that are representable as a sum of two triangular numbers.
A well-known hipster Andrew adores everything funky and cool but unfortunately, he isn't good at maths. Given number n, help him define whether this number can be represented by a sum of two triangular numbers (not necessarily different)!
Input
The first input line contains an integer n (1 ≤ n ≤ 109).
Output
Print "YES" (without the quotes), if n can be represented as a sum of two triangular numbers, otherwise print "NO" (without the quotes).
Examples
Input
256
Output
YES
Input
512
Output
NO
Note
In the first sample number .
In the second sample number 512 can not be represented as a sum of two triangular numbers.
题目大意:
给你一个数字N,问你是否存在两个数字A,B使得N=A(A+1)2+B(B+1)2N=A(A+1)2+B(B+1)2
解题报告:
优秀的二分,复杂度sqrtnlogn
#include<bits/stdc++.h>using namespace std;int main()
{int n;cin>>n;int tmp,key;int l ,r,mid;n*=2;for(int i = 1; i<=sqrt(n); i++) {tmp = i * (i+1);key = n-tmp;l = i;r = sqrt(n);while(l<=r) {mid = (l+r)/2;if(mid * (mid+1) < key) l=mid+1;else if(mid*(mid+1)>key) r = mid-1;else {printf("YES\n");return 0 ;}}}printf("NO\n");return 0 ;
}
【CF#192 A】Funky Numbers (二分,查找,二元组)相关推荐
- [二分查找] 二:二分查找的经典例题
1.何时应该会使用二分查找 当题目中出现有序数组时 当时间复杂度要求为log(n)时 搜索范围可以一次缩小一半时 2. 经典例题1 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果 ...
- 二分查找与二叉排序树
文章目录 二分查找与二叉排序树 二分查找 1. 二分查找 2. 区间查找 3. 基于旋转数组的二分查找 二叉查找(排序)树 1. 插入节点 2. 查找节点 二分查找与二叉排序树 二分查找 1. 二分查 ...
- LeetCode算法题4:二分查找及扩展应用
文章目录 前言 一.二分查找 二.第一个错误的版本 三.搜索插入位置 总结 前言 Leetcode算法系列:https://leetcode-cn.com/study-plan/algorithms/ ...
- 数据结构与算法--6.二分查找
文章目录 一. 二分查找 二. 代码实现一:使用递归 三. 代码实现二:非递归 一. 二分查找 二. 代码实现一:使用递归 def binary_search(alist, item):"& ...
- 二十一、二分查找算法(递归非递归)
一.二分查找思路分析 1.首先确定该数组中间的下标 ,即mid=(left+high)/2; 2.然后让需要查找的value值与array[mid]值进行比较 2.1)findVal > arr ...
- 数据结构算法(二)_算法基础之前传(递归、时间复杂度、空间复杂度、二分查找)...
什么是算法: 间而言之算法(Algorithm):一个计算过程,解决问题的方法 递归的两个特点: 调用自身 结束条件 递归示例: def func(x):if x==0:print("我的小 ...
- 树形结构:从二分查找,二叉搜索树寻找最近祖先,从递归到迭代,实现技巧总结
二分查找,二叉搜索树寻找最近祖先均是典型分治问题,把原问题分成三部分考虑,递归实现简单,迭代实现也比较简单,里面蕴含了一些从从递归到迭代的技巧,注意这里没有使用模拟栈技术. 深究其原因是,这一类型的递 ...
- leetcode74. 搜索二维矩阵(二分查找)
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例 1: 输入: matrix ...
- LeetCode 240. 搜索二维矩阵 II(二分查找 分治)
文章目录 1. 题目 2. 解题 2.1 从左下角或者右上角开始搜索 2.2 分治算法 1. 题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以 ...
- 二分查找 —— 从三分支到二分支
二分查找,三分支向二分支的转变,降低的是时间复杂度的常系数. 1. 三分支版本 template <typename T> Rank binSearch(T *A, T const& ...
最新文章
- linux下redis安装配置及redis常用命令(实战详细版)
- 开源优势_企业开源的10大优势
- 【总结】6种机器学习中的优化算法:SGD,牛顿法,SGD-M,AdaGrad,AdaDelta,Adam
- 为flash游戏终极实用提速
- Eclipse 启动提示java虚拟机启动失败,“Failed to create the Java Virtual Machine”-------解决方法
- 怎么给边框添加图片 css3,用CSS3轻松实现图片边框
- TYUT太原理工大学2022需求工程考试填空题
- GSM和GPRS有什么区别
- 已解决-Mounty 挂载NTFS报错:卷“BOOTCAMP“不可重新挂载
- Hyperledger Fabric之Explorer区块链浏览器
- 制作统一样式的H5视频播放器
- 力扣1438.绝对差不超过限制——python
- Nginx 同时运行多个服务
- PyTorch开发者福音, OpenVINO整合PyTorch实现推理加速!
- 华为国产系统Android,国产手机系统即将出现!华为将抛弃安卓:成功研发自有手机系统...
- Springboot毕设项目博物馆参观预约管理系统gkb2s(java+VUE+Mybatis+Maven+Mysql)
- kmeans以及kmeans++聚类生成anchors
- Hutool-crypto加密工具
- 补码、反码、原码介绍以及相互转换
- 《诛仙》大量实景拍摄 程小东导演:演员状态自然
热门文章
- [Leetcode][第93题][JAVA][复原IP地址][剪枝][回溯]
- 【数据结构与算法】数组与链表
- [Leedcode][JAVA][第289题][生命游戏]
- kingbase自带的驱动在哪_德国制造到底强在哪?从工博会上伺服驱动的创新上能看出真相!...
- 1-3 交换变量(算法竞赛入门经典)
- C语言#define宏定义可能注意不到的地方
- css没有border,你未必知道的CSS小知识:为什么没有人使用border-image
- 谷歌翻译无法连接网络_window10无法连接网络
- E. Anfisa the Monkey
- mysql导出表_mysql导出表的3种方式