首页 > 其他分享 >和为给定数

和为给定数

时间:2024-07-07 21:41:06浏览次数:14  
标签:输出 int 数据 cin 整数 定数 指针

题目链接:https://bzoj.org/p/P05513
Description
给出若干个整数,询问其中是否有一对数的和等于给定的数,这样的一对数下标可以相等.
Input
第一行是整数n(0<n≤1e5),表示有n个整数.
第二行是n个整数,整数的范围是在0到1e8之间.
第三行是一个整数m(0≤m≤2^30),表示需要得到的和.
Output
若存在和为m的数对,输出两个整数,小的在前,大的在后,中间用单个空格隔开.
若有多个数对满足条件,选择数对中较小的数更小的.
若找不到符合要求的数对,输出一行No.
Samples
输入数据 1
4
2 5 1 4
6
输出数据 1
1 5
输入数据 2
4
1 2 5 7
4
输出数据 2
2 2
输入数据 3
10
99 36 7 12869 26538 88 127 62 20086 12564
153
输出数据 3
No
①Sol:有些难度,不过可以用二分法查找
代码:

#include<bits/stdc++.h>
using namespace std;
int a[100010];
int main() 
{
	int n,x,l=0,r=0,mid=0;
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	cin>>x;
	sort(a+1,a+n+1);//排序才可以开始查找
	for(int i=1;i<=n;i++){
		r=n;
		l=i;
		while(l<=r)
		{
			mid=(l+r)/2;//中间位置
			if(a[mid]+a[i]<x) l=mid+1;
			else if(a[mid]+a[i]>x) r=mid-1;
			else
			{
				cout<<a[i]<<" "<<a[mid];
				return 0;//找到了就输出
			}
		}
	}
	cout<<"No"<<endl;//否则输出No
	return 0;
}

②Sol:可以用首尾两指针的方法来做
代码:

#include<bits/stdc++.h>
using namespace std;
int a[100010];
int main() 
{
	int n,x;
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	sort(a+1,a+n+1);
	cin>>x;
	int l=1,r=n;//首指针和尾指针
	while(l<=r){
		if(a[l]+a[r]>x) r--;//如果和大于x,就把尾指针左移
		else if(a[l]+a[r]==x){
			cout<<min(a[l],a[r])<<" "<<max(a[l],a[r]);//如果等于x,就直接输出
			return 0;
		}
		else l++;//否则将首指针右移
	}
	cout<<"No";//如果没找到就输出No
	return 0;
}

创作不易,点个赞再走吧!

标签:输出,int,数据,cin,整数,定数,指针
From: https://www.cnblogs.com/Ace-29/p/18288973

相关文章

  • 这份Excel+Python飞速搞定数据分析手册,简直可以让Excel飞起来
    微软在UserVoice上运营着⼀个反馈论坛,每个⼈都可以在这⾥提交新点⼦供他⼈投票。票数最⾼的功能请求是“将Python作为Excel的⼀门脚本语⾔”,其得票数差不多是第⼆名的两倍。尽管⾃2015年这个点⼦发布以来并没有什么实质性进展,但在2020年年末,Python之⽗GuidovanRoss......
  • 24年新版!这份Excel+Python飞速搞定数据分析手册,简直可以让Excel飞起来
     前⾔微软在UserVoice上运营着⼀个反馈论坛,每个⼈都可以在这⾥提交新点⼦供他⼈投票。票数最⾼的功能请求是“将Python作为Excel的⼀门脚本语⾔”,其得票数差不多是第⼆名的两倍。尽管⾃2015年这个点⼦发布以来并没有什么实质性进展,但在2020年年末,Python之⽗Guidov......
  • Excel+Python:飞速搞定数据分析与处理 (费利克斯•朱姆斯坦)阅读与关键技术分享
    书:pan.baidu.com/s/1owku2NBxL7GdW59zEi20AA?pwd=suov​提取码:suov我的阅读笔记:数据导入与导出: 使用Python的pandas库可以轻松地将数据从Excel导入到数据框中,并进行各种数据转换和清理。同样,你也可以将Python中的处理结果导出到Excel文件中。数据清理: 利用Python的pandas......
  • mysql binlog查看指定数据库
    1.mysqlbinlog查看指定数据库的方法MySQL的binlog(二进制日志)主要记录了数据库上执行的所有更改数据的SQL语句,包括数据的插入、更新和删除等操作。但直接查看binlog并不直观,因为它是以二进制格式存储的。为了查看binlog中的内容,我们通常使用mysqlbinlog工具。如果我们......
  • 通栏中不定数量的图片/轮播自适应宽高的简单示例
    最近接到一个需求,在一个页面会有多个通栏,每个通栏中会有不固定数量的图片或轮播图,要求各图片/轮播要同等比例自适应宽高,写成通用代码。示意图:光是图片好说,其中有swiper就会比较麻烦。代码:<divclass="container"><divclass="zt_banner"><divclass="swiper">......
  • checkboxlist绑定数据方法
    checkboxlist绑定数据方法1.把数据绑定到CheckBoxList中特别要注意加载顺序protectedvoidPage_Load(objectsender,EventArgse){if(!Page.IsPostBack){SqlConnectioncon=GetDBCon.GetCon();......
  • Spring Boot应用中如何动态指定数据库,实现不同用户不同数据库的场景
    当在SpringBoot应用程序中使用SpringDataJPA进行数据库操作时,配置Schema名称是一种常见的做法。然而,在某些情况下,模式名称需要是动态的,可能会在应用程序运行时发生变化。比如:需要做数据隔离的SaaS应用。所以,这篇博文将帮助您解决了在SpringBoot应用程序中如何设置动态S......
  • 和为给定数(二分法)
    题目: 描述给出若干个整数,询问其中是否有一对数的和等于给定的数。输入共三行:第一行是整数n(0<n<=100,000),表示有n个整数。第二行是n个整数。整数的范围是在0到10^8之间。第三行是一个整数m(0<=m<=2^30),表示需要得到的和。输出若存在和为m的数对,输出两个整数,小的在......
  • Sql Server设置用户只能查看并访问特定数据库
    1.新建登录用户以管理员身份登陆数据库(权限最高的身份如sa),点击安全性->登录名,右键新建登录名,输入登录名和密码,取消强制实施密码策略。 2.将服务器角色设置为public 3.将public服务器角色的属性->取消查看所有数据库的权限点击安全性->服务器角色->public,右键属性。点击服务......
  • 记一次WPF的DataGrid绑定数据
    之前一直在用winform,但是感觉界面不好看,然后就自己在网上学习WPF。一开始看到DataGrid的时候,还以为它是DataGridView,然后用winform的方法绑定数据发现不行,在不断的查找之后,终于学会了怎么简单的绑定数据。工具:VStudio2022框架:.netframework4.8新建一个WPF窗体,再把DataGrid拖......