二分搜索 51Nod1090 3个数和为0

超详解“二分法查找”,一看就会! 二分法往简单明了就三个步骤:1. 对半折 2. 查找中间值(mid) 3.缩小区间(看与mid的关系再决定,往左+1或者往 右-1) 阅读详情

基准时间限制:1 秒 空间限制:131072 KB 分值: 5  难度:1级算法题
 收藏
 关注
给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等。从中找出所有和 = 0的3个数的组合。如果没有这样的组合,输出No Solution。如果有多个,按照3个数中最小的数从小到大排序,如果最小的数相等则按照第二小的数排序。
Input
第1行,1个数N,N为数组的长度(0 <= N <= 1000)
第2 - N + 1行:A[i](-10^9 <= A[i] <= 10^9)
Output
如果没有符合条件的组合,输出No Solution。
如果有多个,按照3个数中最小的数从小到大排序,如果最小的数相等则继续按照第二小的数排序。每行3个数,中间用空格分隔,并且这3个数按照从小到大的顺序排列。
Input示例
7
-3
-2
-1
0
1
2
3
Output示例
-3 0 3
-3 1 2
-2 -1 3
-2 0 2
-1 0 1

二分搜索的简单题

如果是暴力的话,需要三个循环,而n的最大值是1000

三个循环时间复杂度是O(n^3),肯定会超时的

//	AC 

#include<cstdio> 
#include<cstring>
#include<algorithm>
using namespace std;
int a[1009];
int n;
int binary_search(int l,int r,int x)
{
//	int l=0,r=n;//之前这里是这样写的,就是在所有的里边查找x 
	while(l<=r)//原来写的是  l<r    WA了好几发 
	{
		int i=(l+r)/2;
		if(a[i]<x)		l=i+1;
		else if(a[i]>x)	r=i-1;
		else			return i;
	}
	return -1;
}
int main()
{
	while(~scanf("%d",&n))
	{
		for(int i=0;i<n;i++)	scanf("%d",&a[i]);
		sort(a,a+n);
//		if(n<3)	printf("No Solution\n");//这里不加也行 
		int k=1;
		for(int i=0;i<n;i++)			
			for(int j=i+1;j<n;j++)
			{
				int x=-(a[i]+a[j]);
				int z=binary_search(j+1,n-1,x);
				if(z==-1)	continue;
				else if(a[i]<=a[j]&&a[j]<=a[z])//要注意这三个数的大小顺序 
				{
					printf("%d %d %d\n",a[i],a[j],a[z]);
					k=0;
				}
			}
		if(k)	printf("No Solution\n");
	}
	return 0;
}













学习LaTeX数学公式的一些常用函数 在优快云优快云优快云里写博客 数学公式是必不可少的内容 恰好MarkdownMarkdownMarkdown支持LaTeXLaTeXLaTeX的语法 所以就学习一些常用的公式 记录下来,以便以后查看 上下标 ^{上标} _{下标} \cdots和\dots是两种不同的点点点的表示方法 x^2_1,x^2_2,x^2_3,\cdots,x^2_n x…xx…xx\do... 阅读详情

相关推荐

智能体在车联网中的应用:第31天 基于RLlib的多智能体PPO实战:MAPPO算法解决simple_spread合作任务

本文介绍了如何利用RLlib框架实现多智能体强化学习算法MAPPO,解决simple_spread任务。首先分析了RLlib的架构设计理念和多智能体支持特性,包括策略映射、环境包装等核心组件。然后详细解析了simple_spread环境的任务定义、观察空间和奖励函数设计。最后回顾了MAPPO算法原理,说明其如何在RLlib中实现集中式训练与分布式执行的CTDE范式。文章提供了完整的安装指南和环境配置方法,帮助读者快速搭建多智能体强化学习实验环境。

IT深耕十余载,大道之简 1333

51Nod-1090 3个数和为0【排序+二分查找】

1090 3个数和为0 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等。从中找出所有和 = 0的3个数的组合。如果没有这样的组合,输出No Solution。如果有多个,按照3个数中最小的数从小到大排序,如果最小的数相等则按照第二小的数排序。 In

海岛Blog 1170

手把手推导APM的 sqrt_controller控制器

前言 玩过无人机的朋友对APM应该都不会陌生,如果是搞过多旋翼飞控且读过代码,肯定遇到过sqrt_controller控制器,它频繁的在位置、姿态控制中出现,所以非常有必要搞清楚这个控制原理。 下面以高度控制器为例来分析。 高度控制 APM的高度控制采用PID串级3环控制,即外环位置控制,中间速度控制,内环速度控制,如下图所示。 今天要讨论的sqrt_controller就是应用于位置控制器中。位置控制器的输出是速度控制器的参考reference输入,如果采用单P控制,其输出vel_ref = pos_e

周小逗的博客 3031

51Nod1090 3个数和为0(二分查找)

这道题和基础题里面的1001 数组中和等于K的数对这道题差不多。 思路:先排升序,让数组里的两个数a[i]a[j]相加,然后在数组下标j之后找(0-a[i[-a[j])。 #include&lt;iostream&gt; #include&lt;cstring&gt; #include&lt;algorithm&gt; using namespace std; long long a[100...

WonderKing'blog 594

碎碎念android eMMC【转】

本文转载自:https://blog.youkuaiyun.com/Fybon/article/details/44242549 一、/dev/blockroot@:/dev/block #lsbootdevicemmcblk0mmcblk0p1mmcblk0p10…….mmcblk0p18mmcblk0p19mmcblk0p2mmcblk0p20……mmcblk0p29mmcblk0p3mmcblk0p3...

zzb2760715357的博客 378

XY2-100协议解析

1.XY2-100包括四路信号 : SENDCK(时钟信号)、SYNC(同步信号)、CHANNELX(X通道)、CHANNELY(Y通道)

qq_38360574的博客 9534

51nod 1090 3个数和为0 (二分_stl)

给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等。从中找出所有和 = 0的3个数的组合。如果没有这样的组合,输出No Solution。如果有多个,按照3个数中最小的数从小到大排序,如果最小的数相等则按照第二小的数排序。 Input 第1行,1个数N,N为数组的长度(0 <= N <= 1000) 第2 - N + 1行:A[i](-10^9

AK_HuangYC的博客 775

1.STM32H743VGT6最小系统板

此款MCU具备较大算力进行频谱运算,为复杂数据运算提供更高效的保障。该MCU具备REV-V和REV-Y两个型号,后者为新版本。

Audiation88的博客 3797

三个数和为零

给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等。从中找出所有和 = 0的3个数的组合。如果没有这样的组合,输出No Solution。如果有多个,按照3个数中最小的数从小到大排序,如果最小的数相等则按照第二小的数排序。 Input 第1行,1个数N,N为数组的长度(0 &lt;= N &lt;= 1000) 第2 - N + 1行:A[Math Processi...

开始的地方 636

Hyper-V显卡直通实战:手把手解决Windows 11虚拟机错误码43(附完整参数配置)

本文详细解析了在Windows 11 Hyper-V虚拟机中配置显卡直通时遭遇错误码43的根源,并提供了从环境检查、核心PowerShell命令(如Set-VMGpuPartitionAdapter)配置到虚拟机内驱动替换的完整实战解决方案,帮助用户彻底解决显卡驱动无法加载的问题。

weixin_29238147的博客 901

基于AIS动态数据与AI结合得经纬度标示算法

港口船舶智能标注系统 本系统通过结合摄像头视频流和AIS船舶动态数据,利用AI技术实现船舶实时标注功能。系统架构包括视频流处理、AIS数据解析、船舶检测匹配和坐标映射转换等模块。关键技术步骤: AIS数据获取:通过本地接收机或网络API获取船舶位置、航速等信息 AI目标检测:采用YOLOv8等模型识别视频中的船舶 船舶匹配算法:通过位置投影或运动轨迹匹配视频目标与AIS数据 坐标映射:使用相机标定技术将经纬度转换为图像坐标 实时标注:在视频画面上叠加船名、位置等关键信息 应用场景包括港口监控、智能海事管理和

qianbo042311的博客 1809

51Nod_1090 3个数和为0

                                            51Nod_1090 3个数和为0                                           http://www.51nod.com/Challenge/Problem.html#!#problemId=1090     题目 给出一个长度为N的无序数组,数组中的元素为整数...

逐梦者 283

AI摄影师:自动构图与修图算法设计

AI摄影师:自动构图与修图算法设计​ ,人工智能,计算机视觉,大模型,AI,AI 摄影师的核心能力体现在两方面:自动构图(通过算法优化画面元素布局)与智能修图(自动调整光影、色彩、细节)。例如,手机摄影中的 “AI 构图建议” 功能可实时框选最佳拍摄区域,修图软件中的 “一键增强” 能在 0.1 秒内完成专业级调色,这些都依赖于计算机视觉与深度学习的深度融合。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 16万+

【51Nod】1090 - 3个数和为0(二分)

题目链接:点击打开链接 1090 3个数和为0 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等。从中找出所有和 = 0的3个数的组合。如果没有这样的组合,输出No Solution。如果有多个,按照3个数中最

wyg1997 644

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

51NOD-1090 3个数和为0

1090 3个数和为0 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等。从中找出所有和 = 0的3个数的组合。如果没有这样的组合,输出No Solution。如果有多个,按照3个数中最小的数从小到大排序,如果最小的数相等则

pomake的博客 224

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

[51nod] 1090 3个数和为0 暴力+二分

给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等。从中找出所有和 = 0的3个数的组合。如果没有这样的组合,输出No Solution。如果有多个,按照3个数中最小的数从小到大排序,如果最小的数相等则按照第二小的数排序。 Input 第1行,1个数N,N为数组的长度(0<=N<=1000) 第2-N+1行:A[i...

weixin_30278311的博客 84

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

51nod1090三个数和为0(二分,vector)

给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等。从中找出所有和 = 0的3个数的组合。如果没有这样的组合,输出No Solution。如果有多个,按照3个数中最小的数从小到大排序,如果最小的数相等则按照第二小的数排序。 Input 第1行,1个数N,N为数组的长度(0 <= N <= 1000) 第2 - N + 1行:Aii(-10^9 <= Ai...

本该如此 294

51nod1090

#include #include using namespace std; int binsearch(int a[],int n,int x) {     int low,high,mid;     low=0;high=n-1;     while(low     {         mid=(low+high)/2;         if(a[mid]==x)

stay_accept的专栏 677

(有意思的水题)51nod-1090-

点击打开题目链接给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等。从中找出所有和 = 0的3个数的组合。如果没有这样的组合,输出No Solution。如果有多个,按照3个数中最小的数从小到大排序,如果最小的数相等则按照第二小的数排序。 Input 第1行,1个数N,N为数组的长度(0 &lt;= N &lt;= 1000) 第2 - ...

AC是绝对不可能的 249

二分查找详解

目录 1.简介 2. 例子 3. 第一种写法(左闭右闭) 3.1 正向写法(正确演示) 3.2 反向写法(错误演示) 4. 第二种写法(左闭右开) 4.1 正向写法(正确演示) 4.2 反向写法(错误演示) 5. 总结 写在前面: 主要解释了二分法的左闭右闭区间,左闭右开区间两种写法,并且每个写法都举了相应的反例,范围写错的话可能会出现的错误等… 1.简介 有一天小明到图书馆借了 N 本书,出图书馆的时候,警报响了,于是保安把小明拦下,要检查一下哪本书没有登记出借。小明正

m0_49264693的博客 8868

51nod 1267 4个数和为0(二分查找)好题!!!

给出N个整数,你来判断一下是否能够选出4个数,他们的和为0,可以则输出"Yes",否则输出"No"。 Input 第1行,1个数N,N为数组的长度(4 <= N <= 1000) 第2 - N + 1行:A[i](-10^9  Output 如果可以选出4个数,使得他们的和为0,则输出"Yes",否则输出"No"。 Input示例 5 -1 1 -5 2 4

AK_HuangYC的博客 2216

51nod 1267 4个数和为0 二分查找

题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1267题意:给出N个整数,你来判断一下是否能够选出4个数,他们的和为0,可以则输出”Yes”,否则输出”No”。 Input 第1行,1个数N,N为数组的长度(4 <= N <= 1000) 第2 - N + 1行:A[i](-10^9 <= A[i] <= 10

弱智就要多努力 376

3个数和为0

给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等。从中找出所有和 = 0的3个数的组合。如果没有这样的组合,输出No Solution。如果有多个,按照3个数中最小的数从小到大排序,如果最小的数相等则按照第二小的数排序。Input第1行,1个数N,N为数组的长度(0 &lt;= N &lt;= 1000) 第2 - N + 1行:Aii(-10^9 &lt;= Aii &...

不二君 723

1090 3个数和为0

1090 3个数和为0 给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等。从中找出所有和 = 0的3个数的组合。如果没有这样的组合,输出No Solution。如果有多个,按照3个数中最小的数从小到大排序,如果最小的数相等则按照第二小的数排序。 收起 输入 第1行,1个数N,N为数组的长度(0 <= N <= 1000) 第2 - N + 1行:A...

森宝的博客 549

Warshall算法求传递闭包

#include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;algorithm&gt; using namespace std; const int maxn=1e3+6; int a[maxn][maxn]; int n; int warshall(int a[][maxn]) { for(int i=0;i&lt;n;i++) {...

鸿杰 的博客 2640

数据结构作业——————二叉树的三种遍历方式

数据结构作业: 二叉树的建立 三种遍历方式 L:遍历左子树 D:访问根节点 R:遍历右子树 DLR:先序遍历 LDR:中序遍历 LRD:后序遍历 #include&amp;amp;lt;bits/stdc++.h&amp;amp;gt; using namespace std; typedef char ElemType; struct node{ ElemType data; nod...

鸿杰 的博客 1200
上一篇: CSU1022 菜鸟和大牛
下一篇: 二分搜索 51Nod 1267 4个数和为0
陶鸿杰
博客等级 码龄9年 93粉丝 298原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值