【CSDN周赛】第21期第二题千问万问

news2024/11/28 16:38:54

题目描述:

给定大小为n的整数序列A. 现在会有q次询问,询问子区间的整数数量。

思路:

1、考的时候没做出来,但是感觉不难,一直不懂错在哪里,所以比赛结束后继续修改;

2、以下代码没有按调用函数的方法做,直接在主函数里写了;

3、题目给的主函数在给str2赋值的时候写成了str[q][0]和str[q][1],应该改为str[i][0]和str[i][1](回不到竞赛的编译环境了,我是从报告里复制出来发现的,也可能是自己不小心改错成q了);

4、特别要注意: 

(虽然对指针变量存放地址有简单了解,但对于数组指针的掌握不是很深刻,先死记以下形式)

1)若 int *arr1

则赋值时可以用 arr1[i] 或 *(arr1+i)

扩容可以用 arr1 = (int*)malloc(n * sizeof(int));

2)若 int (*arr2)[2]

则赋值时可以用 arr2[i][1] *(*(arr2+i)+1),但不能用 *(*arr2+i)+1)

扩容可以用 arr2 = (int(*)[2])malloc(q * sizeof(int *))

5、整道题的思路主要是判断序列A有多少个元素在区间内

1)先对A进行排序,这样当arr1[j]>arr2[i][1]时就不用继续遍历后面的元素了,所以下面的代码其实还可以再优化下;

2)对每组区间,都对A重复进行遍历。既然是要求在区间的元素数量,若区间组的范围集中,可以参考素数筛的方法再优化下代码。

6、题海战术效果不明显,应当是掌握一定的基础知识后,通过学习他人优秀的解题方法和思路,举一反三地刷题,而非低效地通过代码shi山去解题。后续应多学习别人的长处,内化为自己的东西,希望自律一些,再接再厉吧。

编写的代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n, q, i, j;
    scanf("%d %d", &n, &q);
    int *arr1;
    arr1 = (int*)malloc(n * sizeof(int));
    for (i = 0; i < n; i++)
        {
          scanf("%d", &arr1[i]);
        }

    int (*arr2)[2];
    arr2 = (int(*)[2])malloc(q * sizeof(int *));//注意最后一个*不能舍去!
    for (i = 0; i < q; i++)
        {
        int l, r;
        scanf("%d %d", &l, &r);
        arr2[i][0] = l;
        arr2[i][1] = r;
        }
    /*
    for(int i=0;i<q;i++) 
    {
      printf("@@@%d@@@",arr2[i][1]);//正确
      printf("&&&%d&&&",*(*arr2+i)+1); //错误
      printf("###%d###",*(*(arr2+i)+1)); //正确
    }
    */

   //先对arr1从小到大排序
    for(i=0;i<n;i++){
        for(j=i+1;j<n;j++){
            if((*(arr1+i))>(*(arr1+j))){
                int temp;
                temp=*(arr1+i);
                *(arr1+i)=*(arr1+j);
                *(arr1+j)=temp;
                }
    }
    }

    //计算每行区间的元素个数
    for(i=0;i<q;i++){
        int count=0;//每行区间的元素个数
        for(j=0;j<n;j++){
            if((arr2[i][0]<=arr1[j])&&(arr1[j]<=arr2[i][1]))
                count++;
        }
        printf("%d\n",count);
    }
    return 0;
}

运行结果:

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

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

相关文章

QTextDocument

一、描述 此类用来储存结构化的富文本文档。 二、类型成员 1、enum QTextDocument::FindFlag&#xff1a;此枚举描述查找函数可用的选项。这些选项可以用“|”组合&#xff1a; FindBackward&#xff1a;向后搜索。FindCaseSensitive&#xff1a;不区分大小写。FindWholeWo…

用户单点登录

一、用户身份认证 1、单一服务器模式 我们使用传统的Session贺Coookie的模式&#xff0c;就可以完成单一服务器的登录&#xff0c;会话跟踪技术&#xff0c; 一般过程如下&#xff1a; 用户向服务器发送用户名和密码。 验证服务器后&#xff0c;相关数据&#xff08;如用户名…

SpringBoot自定义动态定时任务(三十五)

二八佳人体似酥&#xff0c;腰间仗剑斩愚夫。虽然不见人头落&#xff0c;暗里教君骨髓枯。 上一章简单介绍了SpringBoot整合Quartz实现动态定时任务(三十四) ,如果没有看过,请观看上一章 通过 Quartz 实现了动态定时任务&#xff0c;还需要引入 Quartz 组件&#xff0c; 能不…

腾讯前端二面高频手写面试题总结

实现LRU淘汰算法 LRU 缓存算法是一个非常经典的算法&#xff0c;在很多面试中经常问道&#xff0c;不仅仅包括前端面试 LRU 英文全称是 Least Recently Used&#xff0c;英译过来就是” 最近最少使用 “的意思。LRU 是一种常用的页面置换算法&#xff0c;选择最近最久未使用的…

降本提效 | AIRIOT设备运维管理解决方案

传统运维多是使用在本地化系统&#xff0c;以人工运维和独立系统执行运维工作&#xff0c;重点关注的是设施运行&#xff0c;存在以下几个问题&#xff1a; 1、信息孤岛&#xff1a;本地化系统的接口不同&#xff0c;功能单一独立&#xff0c;各个系统之间的数据无法对接、交互…

了解枚举。

在数学和计算机科学理论中&#xff0c;一个集的枚举是列出某些有穷序列集的所有成员的程序&#xff0c;或者是一种特定类型对象的计数。这两种类型经常&#xff08;但不总是&#xff09;重叠。 [1] 是一个被命名的整型常数的集合&#xff0c;枚举在日常生活中很常见&#xff0…

xxx.OpenResty+Lua后续补充

OpenRestyLua后续补充-请求参数处理看上图&#xff0c;鼠标右键-在新标签中打开图片食用 这是对xxx.nginx转发OpenResty(nginx升级版)_web服务器lua_tgbyhn31的博客-CSDN博客 的一个补充&#xff0c;用于nginx处理请求参数。 附代码&#xff1a; nginx 配置 #user nobody; w…

centos7 安装docker和docker-compose

本人使用的是 阿里云的centos7 的 镜像 安装在虚拟机里面的linux系统 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 如果这条命令没用 在国内很慢 换个地址用下面的试试 curl -sSL https://get.daocloud.io/docker | sh 安装成功 设置开机启动doc…

让你轻松掌握电商设计的在线工具,无门槛

零门槛不用经过工具认识&#xff0c;跟着教程就能上手的电商主图设计平台&#xff0c;让无基础又急需要设计电商主图的你轻松设计商品主图&#xff0c;下面跟着小编的教程一起学习如何使用乔拓云&#xff0c;在线设计电商主图&#xff01;按照步骤就能搞定&#xff01;第一步&a…

适配器Adapter

1.意图&#xff1a;将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 2.结构 类适配器结构图 对象适配器结构图 类适配器使用多重继承对一个接口与另一个接口进行匹配。对象适配器依赖于对象组合。 Targ…

职场一些办公技能和技巧总结

办公软件Word、Excel、PPT职场一些办公技能和技巧总结一、Word&#xff08;含 WPS word&#xff09;1、输入带小方框的对勾 / 叉号法1法2&#xff08;搜狗输入法&#xff09;备注&#xff1a;Word、Excel、PPT 职场一些办公技能和技巧总结一、Word&#xff08;含 WPS word&…

MySQL调优-深入理解MySQL事务隔离级别与锁机制

目录 MySQL调优-深入理解MySQL事务隔离级别与锁机制 概述 事务及其ACID属性 (1) 原子性(Atomicity) (2)一致性(Consistent) (3) 隔离性(Isolation) (4) 持久性(Durable) 原子性和一致性有何区别&#xff1f; 并发事务处理带来的问题 更新丢失(Lost Update)或脏写 脏读&…

Mysql 使用存储过程合并多个表数据

Mysql 使用存储过程合并多个表数据 drop procedure if exists mergeTable; CREATE PROCEDURE mergeTable() BEGIN#定义变量declare temp_table_name varchar(20);declare total int default 0;declare done int default false;#游标数据来源 查询出你想要合并的表名称declar…

分布式锁实现

分布式锁实现一 为什么要使用分布式锁二 分布式锁应该具备哪些条件三 分布式锁的三种实现方式四 基于数据库的实现方式五 基于Redis的实现方式一 为什么要使用分布式锁 我们在开发应用的时候&#xff0c;如果需要对某一个共享变量进行多线程同步访问的时候&#xff0c;可以使用…

HCIE-Security:顺利通过,备考心得

备考半年多&#xff0c;终于通过华为HCIE安全&#xff0c;今天把心得贴出来&#xff0c;供大家参考。 我是4月1日开始在机构开始学习安全IE的&#xff0c;报名之后从IA开始学习&#xff0c;学习期间也算勤勤恳恳&#xff0c;每次上课都进行预习和复习&#xff0c;形成自己的笔记…

论文投稿指南——中文核心期刊推荐(大气科学)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…

2023-1-5 javaScript

JavaScript基础 javaScript 概念 概念&#xff1a;一门客户端脚本语言 脚本语言&#xff1a;不需要编译&#xff0c;直接就可以被浏览器解析执行了 功能&#xff1a;可以增强用户和heml页面交互的过程可以控制html元素&#xff0c;让页面有一些动态的效果&#xff0c;增强用…

[AHK]腾讯实时股票数据接口

腾讯财经接口获取最新行情以五粮液为例&#xff0c;要获取最新行情&#xff0c;访问数据接口&#xff1a;qt.gtimg.cn/qsz000858返回数据&#xff1a;v_sz000858"51~五 粮 液~000858~27.78~27.60~27.70~417909~190109~227800~27.78~492~27.77~332~27.76~202~27.75~334~27.…

[ERROR] Malformed \uxxxx encoding.报错解决

今天用idea运行完项目。想直接打包的时候&#xff0c;结果打包失败&#xff0c;一直报错 [ERROR] Malformed \uxxxx encoding. 网上查了之后&#xff0c;一直说是&#xff0c;有路径在使用斜杠的时候&#xff0c;使用错误。将"\“换成”/“就好了&#xff0c;但是我配置文…

pb将字符串中的中文和英文(含符号)拆分

//用于将字符串中的中文和英文(含符号)拆分 //uf_split_str_enorcn(as_inputstr) //as_inputstr:导入字符串 long i, li_len, li_lenA as_return_cn = as_return_en = if as_inputstr > then li_len = len(as_inputstr) //带中文长度 li_lenA = lenA…