7.15-7.16枚举题目精讲

news2024/11/25 11:42:50

枚举

  • A - Together
  • B - Fractions Again?

A - Together


题目描述

在这里插入图片描述
在这里插入图片描述


题意分析

题意:给出n个数,可以对每一个数做三种操作a,a+1,a-1,求所有操作完成后出现次数最多的数的个数。

分析:对于每个数枚举三种操作后的值,记录其出现次数,最后遍历求出现次数的最大值



解题思路


对于每个数都有三种操作方式,我们只需将每个数都进行三次操作,并统计操作后的数出现的次数,最终选出最大出现次数的那个数即可


复杂度分析


这个解法的时间复杂度是 O(N)。

主要的操作有:

1. 读取 N 个输入数字,复杂度 O(N)
2. 对每个数字 num[x]、num[x-1]、num[x+1] 加 1,复杂度 O(3N) = O(N)
3. 遍历 num 数组找到最大值,复杂度 O(N)

所以总的时间复杂度是 O(N) + O(N) + O(N) = O(N)。
空间复杂度是 O(N),因为使用了大小为 N 的 num 数组来统计次数。



带注释的代码

#include<iostream>
#include<vector>
using namespace std;
typedef long long ll; 
const int N=1e5+5;
int num[N]={0}; //数组较大的时候用全局变量 
 
int main(){
	int n,x; //n为几个数 
	cin>>n;
	vector<int> a(n); //动态数组 
	for(int i=0;i<n;i++){ //统计每个数不变,加一,减一分别出现的次数 
		cin>>x;
		num[x]++; 
		num[x-1]++;
		num[x+1]++;		
	}
	int zc=INT_MIN; //最小整数 
	for(int i=0;i<N;i++)
	{
		zc=max(zc,num[i]); //求出最大出现次数的那个数 
	}
	cout<<zc;
}

B - Fractions Again?

在这里插入图片描述


题意分析


题意:对于输入的值k,给出所有满足1/k=1/x+1/y的结果

分析:遍历x求y,记录所有满足的结果



解题思路


首先我们将等式变形一下

在这里插入图片描述


可以发现我们需要让ky整除y-k,同时我们发现y是从k+1开始遍历,同时当x=y的时候,y的值最大到2k,以此确定了y的上限


复杂度分析

外层while循环:表示持续输入k。循环的次数取决于输入的k的个数。

时间复杂度:O(N),N为输入的k的个数。

内层for循环:循环从k+1到2k,寻找满足条件的整数对。

时间复杂度:O(k)。

内层for循环:输出所有满足条件的整数对。

时间复杂度:O(t1),t1为满足条件的整数对的个数。

综上所述,代码的总体时间复杂度为O(N * k * t1),其中N为输入的k的个数,t1为满足条件的整数对的个数。空间复杂度主要由a和b的空间占用决定,为O(t1)。



带注释的代码

#include<bits/stdc++.h>
using namespace std;
int main(){
	int k;
	while(cin>>k){ //持续输入k 
		int t1=0; //记录有几组数据 
		vector<int> a(1005); //用来存x 
		vector<int> b(1005); //用来存y 
		for(int y=k+1;y<=2*k;y++) //y从k+1开始,最大到2*k 
		{
			if((k*y)%(y-k)==0) //如果可以整除,说明x为整数 
			{
				if(k*y/(y-k)>=y) //如果x>=y 
				{
					a[t1]=k*y/(y-k); //存x 
					b[t1]=y; //存y 
					t1++; //组数加1 
				}
			}	
		}
		cout<<t1<<endl; //存组数 
		for(int i=0;i<t1;i++)
		{ 
			printf("1/%d = 1/%d + 1/%d\n",k,a[i],b[i]); //按照格式输出 
		}
	}
}	

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/760574.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

神经网络初识-以MINST数据集和CIFAR10数据集为例

文章目录 1 什么是神经网络1.1 神经元模型1.2 感知机1.3 多层神经网络1.4 为什么要使用神经网络 2 全连接神经网络2.1 简介2.2 梯度下降2.2 反向传播2.3 代码实现 3 卷积神经网络3.1 简介3.2 代码实现 总结 1 什么是神经网络 人工神经网络&#xff08;artificial neural netwo…

【论文精读】Vis-MVSNet: Visibility-aware Multi-view Stereo Network

今天属于是重读经典了&#xff0c;这是一篇发表在BMVC2020上的文章&#xff0c;试图解决MVS中可见性的问题。该文章最近在拓展之后被发表在了IJCV上。本文的解读是基于扩展之后的IJCV版本&#xff0c;期刊的版本内容更加详细一点。 文章链接&#xff1a;BMVC2020版本和IJCV版本…

【电子学会】2023年05月图形化四级 -- 绘制同心圆

绘制同心圆 1. 准备工作 &#xff08;1&#xff09;保留小猫角色&#xff1b; &#xff08;2&#xff09;背景为默认白色。 2. 功能实现 &#xff08;1&#xff09;点击绿旗&#xff0c;小猫询问“请问绘制几个同心圆&#xff1f;”&#xff1b; &#xff08;2&#xff09;…

044、TiDB特性_PlacementPolicy

Placement Rules in SQL之前 跨地域部署的集群&#xff0c;无法本地访问无法根据业务隔离资源难以按照业务登记配置资源和副本数 Placement Rules in SQL之后 跨地域部署的集群&#xff0c;支持本地访问根据业务隔离资源按照业务等级配置资源和副本数 配置 labels 设置 Ti…

这个怎么弄?电脑没有d3dx9_43.dll?

在使用某些电脑软件或游戏时&#xff0c;遇到这样的提示&#xff1a;找不到d3dx9_43.dll&#xff0c;无法继续执行代码。这个问题比较常见&#xff0c;很多人不知道该怎么解决。如果你也遇到这个问题&#xff0c;不要着急。本文将详细介绍如何解决找不到d3dx9_43.dll无法继续执…

计算机网络基础第四章

一、网络层概述 1.1 网络层功能概述 主要任务是把分组从源端传到目的端&#xff0c;为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。 功能一&#xff1a;路由选择与分组转发&#xff08;最佳路径&#xff09;功能二&#xff1a;异构网络互联功能三&#xf…

23年测试岗面试,高频自动化测试面试题(付答案)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 面试题1&#xff…

高等数学专题(1)三角函数公式大全

本帖的公式内容可以并列全网最全&#xff08;doge&#xff09;&#xff0c;博主多方面搜集并总结了最重要和常用的三角函数公式&#xff0c;具体为以下几个内容&#xff1a; 1.诱导公式 2.平方关系 3.二倍角公式 4.半角公式 5.和差角公式 6.积化和差 7.和差化积 8.辅助角公式 9…

半小时漫画计算机

ISBN: 978-7-121-41557-9 作者&#xff1a;刘欣&#xff08;码农翻身&#xff09; 绘画&#xff1a;刘奕君 页数&#xff1a;210页 阅读时间&#xff1a;2023-06-03 推荐指数&#xff1a;★★★★★ 以漫画的形式来讲解计算机的基础知识&#xff0c; 主要涉及到CPU、内存、网络…

CentOs进行AKShare HTTP 部署并供外网IP调用

需求背景 周末闲聊之时&#xff0c;看了akshare的官方文档&#xff0c;之前都是通过python程序去调用数据&#xff0c;作为一个java开发者&#xff0c;我觉得甚是不太方便。认真看了一下文档&#xff0c;是我失敬了。大佬已经推出了aktools工具&#xff0c;这样就可以通过http…

时钟案例.js

案例已经在一个html中写完 要求通过node.js将其分成html css js 三个文件 正则表达式 就是把字符串表示出来 读取文件 读取css 同理还有js 和html 素材代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><me…

MySQL---索引

目录 一、索引的分类 二、索引的底层原理是什么&#xff1f; 2.1、Innodb和MyIsAM两种引擎搜索数据时候的区别&#xff1a; 2.2、为什么MySQL&#xff08;MyIsAM、Innodb&#xff09;索引选择B树而不是B树呢&#xff1f; 2.3、Innodb的主键索引和二级索引&#xff08;辅助…

【图游走+二分图】牛客小白月赛 43 F

F-全体集合_牛客小白月赛43 (nowcoder.com) 题意&#xff1a; 思路&#xff1a; 首先是经典的猜结论环节 这个结论可以想象特殊情况&#xff0c;把图看成一条链&#xff0c;多模拟几个例子 然后会发现一个很显然的结论&#xff1a;在链上的两个人点之间的距离一定是偶数 然…

【【51单片机的蜂鸣器实现小星星】】

用单片机的蜂鸣&#xff0c;实现简单小星星 我们在设置板子的时候要翻转 翻转IO口是因为使用了步进电机的多余的芯片管脚 我们翻转之后还想让它保持一段时间 就是先翻转500次 Delay(1&#xff09;之后 就是最小的单位每隔1ms 周期就是2ms 频率就是500HZ 蜂鸣器播放音乐 我们首…

【040】巧妙地穿梭双端:掌握C++ STL中deque容器的强大功能

巧妙地穿梭双端&#xff1a;掌握C STL中deque容器的强大功能 引言一、deque容器概述二、deque容器实现原理三、deque容器常用API3.1、deque的构造函数3.2、deque的赋值操作3.3、deque的大小操作3.4、deque的双端插入和删除操作3.5、deque的数据存取3.6、deque的插入操作3.7、de…

Spring IOC AOP

IOC容器 概念 IOC&#xff0c;全程Inversion of Control&#xff08;控制反转&#xff09; 通过控制反转&#xff08;创建对象的权限交给框架&#xff0c;所以叫反转&#xff09;创建的对象被称为Spring Bean&#xff0c;这个Bean和用new创建出来的对象是没有任何区别的。 官…

排序算法第三辑——交换排序

目录 ​编辑 一&#xff0c;交换排序算法的简介 二&#xff0c;冒泡排序 冒泡排序代码&#xff1a;排升序 三&#xff0c;快速排序 1.霍尔大佬写的快速排序 2.挖坑法 3.前后指针法 四&#xff0c;以上代码的缺陷与改正方法 三数取中 三路划分&#xff1a; 五&#…

真的绝了,通过注释来埋点好简单!!

目录 回顾 开始 插件编写 功能一 功能二 功能三 合并功能 运行代码 总结 这篇文章主要讲如何根据注释&#xff0c;通过babel插件自动地&#xff0c;给相应函数插入埋点代码&#xff0c;在实现埋点逻辑和业务逻辑分离的基础上&#xff0c;配置更加灵活 回顾 上篇文章…

微服务系列文章之 Springboot应用在k8s集群中配置的使用

Docker部署其实也可以再docker run或者dockerfile里面&#xff0c;将配置文件目录映射到宿主机&#xff0c;然后通过宿主机配置文件修改参数。 FROM docker.io/python:3.6MAINTAINER tianye # 设置容器时间 RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&am…

Windows安装Oh-My-Posh美化Powershell

Windows Terminal&#xff1a;https://www.microsoft.com/store/productId/9N0DX20HK701 最新Powershell下载&#xff1a;https://github.com/PowerShell/PowerShell/releases Oh-My-Posh官网&#xff1a;https://ohmyposh.dev/ Nerd字体下载&#xff1a;https://www.nerdfonts…