day01.蓝桥杯

1.哈希算法:

#include <bits/stdc++.h>
using namespace std;
const int MAXN=1000001;
int a[MAXN];
int main(){int n,m;while(~scanf("%d %d",&n,&m)){//输入m和n memset(a,0,sizeof(a));//将a数组初始化为0 for(int i=0;i<n;i++){int t;cin>>t;//在输入t的时候 a[500000+t]=1;//把a【500000+t】的位置记录为a【500000+t】=1 }for(int i=MAXN-1;m>0;i--){if(a[i]){//输出的时候逐个检查a【i】等于1 if(m>1) printf(" %d ",i-500000);//打印出前m个元素 else printf(" %d\n",i-500000);m--;}}} return 0;
} 

(1).while (~scanf("%d%d",&m,&n)):

其功能是循环从输入流读取m和n,直到遇到EOF为止

等同于while (scanf("%d%d",&m,&n)!=EOF)。

scanf()函数返回成功赋值的数据项数,出错时则返回,EOF定义为-1

~是按位取反,-1十六进制补码表示为0x ffffffff,f是二进制的1111,取反后就全部变成0了,于是while结束。

只有返回值为EOF(即-1)时,其取反的的值(即while循环的判断条件)才为0,才能结束循环,其它输入情况下(无论是否输入成功)while循环的判断条件为非0,即为真。

这种写法的漏洞在于:一但输入的值为字母、符号之类的,scanf赋值不成功把读到的内容又返回到stdin的缓冲区(假设这个值为t),其取反得到的值使while又进入到下一次循环,scanf又从stdin缓冲区里读到了原先吐回的t,如此成了死循环……

(2).memset是一个初始化函数

作用是:将某一块内存中的全部设置为指定的值

void *memset(void *s, int c, size_t n);

    s指向要填充的内存块。
    c是要被设置的值。
    n是要被设置该值的字符数。
    返回类型是一个指向存储区s的指针。

(1)初始化数组:

int a[4];
memset(a,1,sizeof(a));
//等价于:(int占4个字节)
memset(a,1,16);
char str[100];//char占1个字节
memset(str,0,100);

(2)清空结构体类型的变量

typedef struct Stu{char name[20];int cno;
}Stu;
Stu stu1;
memset(&stu1,0,sizeof(Stu));Stu stu2[10];//结构体数组
memset(stu2,0,sizeof(Stu)*10);

2.快速排序

#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[100001]
int main(){while(~scanf("%d %d",&m,&n)){for(int i=1;i<=n;i++) scanf("%d",&a[i]);sort(a+1,a+n+1);//完成a的排序for(int i=n;i>=n-m+1;i--){if(i==n-m)print("%d\n",a[i]);else printf("%d ",a[i]);}}return 0;
}

(1)sort默认排序:

    sort(a+1,a+n+1); //对数组 1~n 之间进行排序sort(a,a+n);     //对数组 0~n-1 之间进行排序

(2)自定义排序:
 

    sort(a+1,a+n+1,cmp);bool cmp(int x,int y)  //由大到小排序 {return x>y;//if(x>=y) return 1;  现有x和y位置不变 //if(x<y)  return 0;  交换x和y的位置 }

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

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

相关文章

数据结构:顺序表(C++实现)

1 头文件 SeqList.h //SeqList.h #pragma once #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<cassert> using namespace std; class SeqList { public://初始化SeqList();//销毁~SeqList();//头插void PushFront(int data);//头删void PopFront(…

Flutter 开发中踩坑笔记总汇

Flutter 踩坑笔记总汇 本篇主要是收集汇总开发过程中遇到的小困惑&#xff0c;都是些比较常见的问题。后续开发中遇到&#xff0c;也会持续更新在这里。 1、Flutter Packages upgrade后任务进入阻塞状态 问题&#xff1a;无法更新下载插件库。 解决&#xff1a;配置flutter官…

力扣(103、236、104)

103. 二叉树的锯齿形层序遍历 题目大意&#xff1a;将原先的层次遍历改为蛇形遍历&#xff0c;那么我们需要在102. 二叉树的层序遍历的基础上进行改进&#xff0c;首先蛇形走位&#xff08;先从左往右&#xff0c;再从右往左进行下一层遍历&#xff0c;以此类推&#xff0c;层…

SQL注入攻击与防范:案例分析与最佳实践

SQL注入是一种常见的安全漏洞&#xff0c;攻击者利用此漏洞向应用程序的数据库发送恶意SQL查询&#xff0c;以执行未经授权的操作或获取敏感数据。以下是一些预防SQL注入的常见方法&#xff1a; 使用参数化查询&#xff1a;使用参数化查询可以有效防止SQL注入攻击。参数化查询将…

C语言几个比较实用的宏定义

最近同事远程调试设备&#xff0c;为了定位问题临时发布了好几个版本&#xff0c;有些版本号改了有些没改&#xff0c;结果调试完&#xff0c;准备备份版本的时候&#xff0c;忘了哪个版本是最新的了 这里介绍几个比较使用的宏&#xff0c;把编译时间加入到执行文件中&#xf…

k8s部署InfluxDB

&#xff08;作者&#xff1a;陈玓玏&#xff09; 1. 拉取镜像 docker pull influxdb #拉取镜像 docker run -d influxdb:latest #后台运行容器 docker exec -it 89b /bin/bash #进入容器&#xff0c;89b是容器ID的前三位 cd /usr/bin #进入容器后&#xff0c;进入此文件夹…

SEO是什么?网站为什么要做SEO?#川圣SEO#蜘蛛池

baidu搜索&#xff1a;如何联系八爪鱼SEO&#xff1f; baidu搜索&#xff1a;如何联系八爪鱼SEO&#xff1f; baidu搜索&#xff1a;如何联系八爪鱼SEO&#xff1f; SEO&#xff0c;即搜索引擎优化&#xff0c;是一种通过了解和利用搜索引擎的运作规则来提高网站在搜索结果中…

关于go中的select

笔记仓库&#xff1a;gitee.com/xiaoyinhui 代码中的解释纯个人理解&#xff0c;有不对的望指出 package testsimport ("fmt""testing" )var uCnt int 0func TestSelece(t *testing.T) {// 对于 select 语句&#xff0c;在进入该语句时&#xff0c;会按源…

Flink技术简介与入门实践

架构简介 Flink 是一个分布式流处理和批处理计算框架&#xff0c;具有高性能、容错性和灵活性。下面是 Flink 的架构概述&#xff1a; JobManager&#xff1a;JobManager 是 Flink 集群的主节点&#xff0c;负责接收和处理用户提交的作业。JobManager 的主要职责包括&#xff1…

即插即用卷积之TalkingHeadAttn

import torch from torch import nn""" 个代码实现了一个名为"TalkingHeadAttn"的自注意力模块(Self-Attention),主要用于增强神经网络在输入序列上的特征表示和建模。以下是这个自注意力模块的关键部分和特点:多头自注意力:这个模块使用了多头自…

Android13 客制化U盘挂载路径

Android 8.1 OTG U盘无法显示在系统文件管理的修改_mtk 屏蔽当贝市场u盘弹框-CSDN博客 Android 8.1 客制化OTG U盘的挂载路径名称_安卓8.1 u盘挂载目录-CSDN博客

Tomacat下载并且手动自动部署Web项目

Tomacat下载并且手动自动部署Web项目 Tomcat的简介Tomcat的作用Tomcat的下载Tomcat 部署1、环境准备2、手动部署项目3、自动部署项目&#xff08;IDEA&#xff09; ⭐ 前言 ⭐ 本篇文章主要介绍 Tomacat下载部署Web项目的详细使用以及部分理论知识 Tomcat的简介 Tomcat 服务…

硬盘分区怎么恢复数据 硬盘分区如何恢复原来的数据

硬盘分区是我们在使用电脑时经常会遇到的问题&#xff0c;而且很多人都会因为误操作或者其他原因导致硬盘分区数据丢失。这时候&#xff0c;我们就需要知道如何恢复硬盘分区的数据了。 首先&#xff0c;我们需要知道硬盘分区数据丢失的原因。一般来说&#xff0c;硬盘分区数据丢…

setTimeout+Promise+Async输出顺序?

注明&#xff1a;本文不涉及Nodejs执行机制 同步 && 异步 什么是异步&#xff0c;什么是同步&#xff0c;我不多说&#xff0c;我就通过小故事来讲讲吧。 同步&#xff1a;你打电话去书店订书&#xff0c;老板说我查查&#xff0c;你不挂电话在等待&#xff0c;老板把…

基于Node.js 和 FFmpeg构建自动化脚本用来转码视频

这个脚本将监控一个特定的目录&#xff0c;自动转码新添加的视频文件&#xff0c;并将转码后的视频保存到指定目录。 准备环境 安装 Node.js: 访问 Node.js 官网&#xff0c;下载并安装适合你操作系统的 Node.js 版本。 安装 FFmpeg(不清楚的可以看我的上篇博客里有详细的安装…

Memcached 数据库介绍

一 Memcached 介绍 &#xff08;一&#xff09;Memcached 简单介绍 弊端 不能持久化 &#xff08;不支持存在硬盘里&#xff09; Memcached 只支持能序列化的数据类型&#xff0c;不支持持久化&#xff0c;基于Key-Value的内存缓存系统 memcached 虽然没有像redis所具备的…

【Golang星辰图】图像和多媒体处理的创新之路:Go语言的无限潜能

图像处理、音视频编辑&#xff0c;Go语言不再局限&#xff1a;揭秘opencv和goav的威力 前言: 在当今的数字时代&#xff0c;图像处理和多媒体技术在各个领域中的应用越来越广泛。无论是计算机视觉、图像处理还是音视频处理&#xff0c;选择合适的库和工具至关重要。本文将介绍…

宏任务及微任务

js有一个基于事件循环的并发模型&#xff0c;事件循环负责执行代码、收集和处理事件&#xff0c;以及执行队列中的子任务。js是单线程的&#xff08;某一刻只能执行一行代码&#xff09;&#xff0c;为了让耗时带啊不阻塞其他代码运行&#xff0c;设计了事件循环模型。 事件循环…

【Golang星辰图】 编织自动化魔法:使用 Go 语言中的自动化和部署工具构建可靠的基础设施

Go 语言中的自动化和部署&#xff1a;使用 Ansible、Docker、Kubernetes、Terraform、Jenkins、GitLab 和 Vault 的详细指南 前言&#xff1a; 自动化和部署是当今软件开发生命周期中不可或缺的环节。使用自动化工具可以提高效率、降低成本、减少人为错误&#xff0c;并使软件…

学生时期学习资源同步-1 第一学期结业考试题1

原创作者&#xff1a;田超凡&#xff08;程序员田宝宝&#xff09; 版权所有&#xff0c;引用请注明原作者&#xff0c;严禁复制转载