小苯的九宫格,小苯的好数组(排序),小苯的数字合并(字典树,前缀和)

小苯的九宫格

题目描述

 

运行代码

#include<iostream>
using namespace std;
int main(){
	int a[10];
	for(int i=1;i<=9;i++){
		cin>>a[i];
	} 
	string b;
	cin>>b;
	for(int i=0;i<b.size();i++){
		int p=b[i]-'0';
		cout<<a[p];
	}
}

代码思路

  1. 定义数组:首先,定义了一个整型数组a,用于存储10个整数。但需要注意的是,在C++中,数组的索引通常从0开始,而不是从1开始。然而,这里的循环是从1开始的,这意味着数组的第一个元素a[0]没有被使用。

  2. 输入数组:通过一个for循环,从a[1]a[9]输入9个整数。这意味着a[0]的值是未定义的(可能包含垃圾值)。

  3. 输入字符串:接着,代码读取一个字符串b

  4. 处理字符串并输出数组元素:再次使用一个for循环遍历字符串b的每一个字符。

    • 在循环内,首先将字符b[i]转换为其对应的整数p。这是通过从字符中减去字符'0'的ASCII值来实现的。在ASCII中,数字字符'0'到'9'是连续的,所以这种减法可以得到字符所代表的整数值。
    • 然后,代码尝试输出数组a中索引为p的元素。但是,由于之前的数组输入是从1开始的,如果b中的某个字符表示的数字是0(即p为0),则程序会尝试访问a[0],这是一个未定义的值。此外,如果b中的某个字符表示的数字大于9(即p大于9),则程序会访问数组a的越界位置,这会导致未定义行为(通常是程序崩溃)

小苯的好数组(排序)

题目描述

 

运行代码

#include<iostream>
#include<vector>
using namespace std;
inline int FN(){
    int x=0,f=1;
    char c=getchar();
    while(c<'0'||c>'9')
    {
        if(c=='-')
            f=-f;
        c=getchar();
    }
    while(c>='0'&&c<='9')
    {
        x=x*10+c-'0';
        c=getchar();
    }
    return x*f; 
}
int a[200010];
signed main(){
	int n=FN();
	for(int i=1;i<=n;i++)
		a[i]=FN();
	bool o=0;
	for(int i=1;i<=n;i++)
		o|=(a[i]<a[i-1]);
	if(o)
        cout<<n<<endl;
	else 
        cout<<0;
    return 0;
}

代码思路

  1. FN 函数
    这是一个用于读取整数的函数,它可以处理正数和负数。

    • 首先,它初始化一个整数 x 为 0 和一个标志 f 为 1(用于处理负数)。
    • 然后,它读取一个字符 c 并检查它是否是数字。如果不是,它会继续读取直到找到数字或负号。
    • 如果找到负号,它将 f 设置为 -1。
    • 接下来,它会读取所有的数字字符,并将它们转换为整数。
    • 最后,它返回 x * f,这样如果 f 是 -1,那么 x 就会被取反。
  2. 主函数

    • 首先,它使用 FN 函数读取一个整数 n,表示要读取的整数数量。
    • 然后,它使用一个 for 循环读取 n 个整数并存储在数组 a 中。注意,这里从 a[1] 开始存储,但数组通常从 a[0] 开始。
    • 接下来,它使用一个布尔变量 o 来跟踪数组是否是降序的。它初始化为 false(在C++中,bool 类型的 0 被视为 false)。
    • 它再次使用一个 for 循环遍历数组,并检查每个元素是否小于其前一个元素。如果是,它将 o 设置为 true。但是,这里有一个潜在的问题:当 i=1 时,a[i-1] 实际上是 a[0],而 a[0] 没有被初始化或赋值,这可能导致未定义的行为。
    • 最后,根据 o 的值,它输出 n 或 0

小苯的数字合并(字典树,前缀和)

题目描述

 

运行代码

#include <bits/stdc++.h>
#include<iostream>
using namespace std;
int main()
{
	int n;
    cin>>n;
    int a[200005];
    long long sum[200005];
    sum[0]=0;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        sum[i]=sum[i-1]+a[i];
    }
    long long ans=0;
    if(n==1)
    {
        return 0;
    }
    long long m=1e9;
    for(int i=1;i<=n;i++)
    {
        if(a[i]<m)
        {
            m=a[i];
        }
        ans=max(sum[n]-sum[i]-m,ans);
        ans=max(sum[i-1]-a[i],ans);
    }
    cout<<ans;
	return 0;
}

代码思路

  1. 输入与初始化:输入整数n,表示序列的长度。定义数组a[200005]存储序列中的每个元素。

    定义数组sum[200005]用于存储序列的累积和,其中sum[i]表示序列前i个元素的和。初始化sum[0]=0
  2. 读取序列与计算累积和:读取序列中的每个元素a[i],并计算累积和数组sum,使得sum[i] = sum[i-1] + a[i]

  3. 寻找分割点以最大化“不完美度”

    • 初始化变量ans为0,用于记录最大的“极差”。
    • 用一个变量m来追踪到目前为止序列中的最小值,初始值设为1e9(一个很大的数,确保任何正整数都会比它小)。
    • 遍历序列,对于每个位置i(从1到n):更新m为当前位置i处的元素a[i]和当前最小值m中的较小者。计算两种分割情况下的“不完美度”:第一种情况:分割点在i,左边部分的不完美度为当前m,右边部分的不完美度由累积和计算得来,即sum[n] - sum[i] - m
      • 第二种情况:实际上是一种特例,当分割点在i左侧的最后一个位置时,左边所有元素的总和减去a[i]
      • 更新ans为上述两种情况中的较大值。
  4. 输出结果:循环结束后,ans中存储了最大的“差”,将其输出。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于栈的简单讲解

哈喽&#xff0c;小伙伴们大家好呀&#xff0c;今天给大家带来栈、队列的那些知识点。 栈的概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端 称为栈顶&#xff0c;另一端称为栈底。 总结 一种线性…

多线程编程(12)之HashMap1.8源码分析

之前已经分析过了一版1.7版本的HashMap&#xff0c;这里主要是来分析一下1.8HashMap源码。 一、HashMap数据结构 HashMap 是一个利用散列表&#xff08;哈希表&#xff09;原理来存储元素的集合&#xff0c;是根据Key value而直接进行访问的数 据结构。 在 JDK1.7 中&#xff…

MongoDB数据库清理策略: 自动化过期数据删除实战

1、引言 随着应用程序和业务数据的持续增长&#xff0c;有效地管理数据库存储空间成为维护系统性能的关键。在MongoDB这类NoSQL数据库中&#xff0c;定期清理过期数据变得尤为重要&#xff0c;这不仅能释放宝贵的存储资源&#xff0c;还能优化查询性能&#xff0c;确保数据库运…

[算法] 优先算法(三):滑动窗口(上)

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏:&#x1f355; Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 &#x1f9c0;Java …

Web安全技术期末考查-vulhub靶场搭建及漏洞复现

一、实验目的与要求 能根据报告找到难度适中的漏洞&#xff0c;搭建弱点环境&#xff0c;并验证该漏洞&#xff1b; 2.能给出该漏洞的修复建议。 二、实验原理与内容 漏洞原理 漏洞原理通常指的是计算机系统、软件、网络或其他技术系统中存在的安全缺陷&#xff0c;这些缺陷…

Ubuntu18 配置FFmpeg开发环境 (Vscode+CMake)

关于Vscode插件安装不再赘述&#xff0c;本文主要讲解如何配置FFmpeg的开发环境以及CMake文件写法&#xff0c;如果不知道该安装什么插件请看本文&#xff1a; Ubuntu配置Vscode 文章目录 1.安装FFmpeg开发包2.配置Vscode项目3.使用C语言验证FFmpeg版本 1.安装FFmpeg开发包 更新…

粉丝问,有没有UI的统计页面,安排!

移动应用的数据统计页面具有以下几个重要作用&#xff1a; 监控业务指标&#xff1a;数据统计页面可以帮助用户监控关键业务指标和数据&#xff0c;例如用户活跃度、销售额、转化率等。通过实时更新和可视化呈现数据&#xff0c;用户可以及时了解业务的整体状况和趋势。分析用…

深入剖析—【服务器硬件】与【Nginx配置】:从基础到实战

服务器硬件部分&#xff1a; Processor (CPU)&#xff1a;服务器的计算核心&#xff0c;负责处理数据和执行程序。Memory (RAM)&#xff1a;用于暂时存储和快速访问数据&#xff0c;决定了系统的运行速度和并发处理能力。Storage (HDD/SSD)&#xff1a;长期存储数据的设备&…

基于JT/T808、JT/T1078、苏标、粤标视频主动安全监控

1.概述 如下图是以实时视频点播与部标机产生了主动安全报警&#xff0c;各个服务之间的交互流程说明。 整个系统有以下几个核心组件组成&#xff1a; 1&#xff1a;系统业务端&#xff1a;车载监控业务系统&#xff0c;给用户提供车载监控整套业务流程与界面呈现&#xff1b;…

Docker安装Oracle11g数据库

操作系统&#xff1a;centOS9使用此方法检查是否安装Docker&#xff1a;docker --help&#xff0c;如果有帮助文件则证明安装成功使用此语句检查Docker是否正在运行&#xff1a;docker images&#xff0c;实际上是查看本地镜像如果发现未运行则开启Docker&#xff1a;systemctl…

rapidssl泛域名https600元一年

泛域名https证书也可以称之为通配符https证书&#xff0c;指的是可以用一张https证书为多个网站(主域名以及主域名下的所有子域名网站)传输数据加密&#xff0c;并且提供身份认证服务的数字证书产品。RapidSSL旗下的泛域名https证书性价比高&#xff0c;申请速度快&#xff0c;…

使用 FileZilla 在 Windows 和 Ubuntu 之间传文件

网线一端插在板子的WAN口上&#xff0c;另一段插在电脑上&#xff0c;然后要配一下板子的IP。 板侧&#xff1a; 使用串口链接板子与PC端&#xff1b; 输入指令 ifconfig eth0&#xff08;具体看wan口对应哪一个&#xff09; 192.168.1.99 PC端配置&#xff1a; 打开网络设…

操作系统实验:进程和线程同步和互斥(生产者消费者问题,睡觉的理发师问题)

1.生产者消费者问题&#xff08;信号量&#xff09; 参考教材中的生产者消费者算法&#xff0c;创建5个进程&#xff0c;其中两个进程为生产者进程&#xff0c;3个进程为消费者进程。一个生产者进程试图不断地在一个缓冲中写入大写字母&#xff0c;另一个生产者进程试图不断地…

sqlserver——查询(四)——连接查询

目录 一.连接查询 分类&#xff1a; 内连接&#xff1a; 1. select ... from A&#xff0c;B &#xff1b; 2. select ..from A&#xff0c;B where ..&#xff1b; 3.select ...,... from A join B on... 4. where 与 join...on 的区别 5. where位置的先后 导语&#xff1…

开发心电疾病分类的深度学习模型并部署运行于ARM虚拟硬件平台(AVH)

目录 一、ARM虚拟硬件平台介绍 二、心电疾病分类模型介绍 三、部署流程 3.1 基于百度云平台订阅虚拟硬件镜像 3.2 安装编译相关组件 3.3 数据加载 3.4 模型转换 方式一&#xff1a; tensorflow模型转换为onnx模型&#xff0c;onnx模型转换为TVM模型 方式二&#xff1…

【操作系统】发展与分类(手工操作、批处理、分时操作、实时操作)

2.操作系统发展与分类 思维导图 手工操作阶段&#xff08;此阶段无操作系统&#xff09; 需要人工干预 缺点&#xff1a; 1.用户独占全机&#xff0c;资源利用率低&#xff1b; 2.CPU等待手工操作&#xff0c;CPU利用不充分。 批处理阶段&#xff08;操作系统开始出现&#x…

从零入门激光SLAM(二十一)——FAST-LIO2论文解析

FAST-LIO2: Fast Direct LiDAR-Inertial Odometry 论文地址&#xff1a;https://ieeexplore.ieee.org/stamp/stamp.jsp?tp&arnumber9697912 代码&#xff1a;https://github.com/hku-mars/FAST_LIO 一、文章概述 1.问题导向 基于视觉传感器的高分辨率和高精度的实时密…

Excel 取出每组最后一行

Excel的前两列是两层的分组列&#xff0c;后两列是明细 ABCD1CM11112CM12123CM13134CM14145CM25156CM26167BM11218BM12229BM232310AM113111AM323212AM333313AM3434 现在要取出每小组的最后一行&#xff1a; ABCD1CM14142CM26163BM12224BM23235AM11316AM3434 使用 SPL XLL sp…

编译原理 期末复习笔记整理(上)

资料借鉴&#xff1a; 【编译原理】期末复习 零基础自学_哔哩哔哩_bilibili 编译原理笔记 第一章 引论 1.编译原理逻辑过程&#xff1a; 词法分析 语法分析 语义分析 中间代码生成 编译代码生成 2.词法分析 任务: 输入源程序&#xff0c;对…

SpringBootWeb 篇-深入了解 Mybatis 删除、新增、更新、查询的基础操作与 SQL 预编译解决 SQL 注入问题

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 Mybatis 的基础操作 2.0 基础操作 - 环境准备 3.0 基础操作 - 删除操作 3.1 SQL 预编译 3.2 SQL 预编译的优势 3.3 参数占位符 4.0 基础操作 - 新增 4.1 主键返回…