蓝桥杯专题-试题版-【操作格子】【查找整数】【分解质因数】【高精度加法】

  • 点击跳转专栏=>Unity3D特效百例
  • 点击跳转专栏=>案例项目实战源码
  • 点击跳转专栏=>游戏脚本-辅助自动化
  • 点击跳转专栏=>Android控件全解手册
  • 点击跳转专栏=>Scratch编程案例
  • 点击跳转=>软考全系列
  • 点击跳转=>蓝桥系列

👉关于作者

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎底部卡片私我,获取更多支持,交流让学习不再孤单

芝麻粒儿-空名先生

👉实践过程

需要所有整理的文档可底部卡片联系我,直接发压缩包。

😜操作格子

问题描述
有n个格子,从左到右放成一排,编号为1-n。
共有m次操作,有3种操作类型:
1.修改一个格子的权值,
2.求连续一段格子权值和,
3.求连续一段格子的最大值。
对于每个2、3操作输出你所求出的结果。

输入格式
第一行2个整数n,m。
接下来一行n个整数表示n个格子的初始权值。
接下来m行,每行3个整数p,x,y,p表示操作类型,p=1时表示修改格子x的权值为y,p=2时表示求区间[x,y]内格子权值和,p=3时表示求区间[x,y]内格子最大的权值。

输出格式
有若干行,行数等于p=2或3的操作总数。
每行1个整数,对应了每个p=2或3操作的结果。

样例输入
4 3
1 2 3 4
2 1 3
1 4 3
3 1 4

样例输出
6
3

数据规模与约定
对于20%的数据n <= 100,m <= 200。
对于50%的数据n <= 5000,m <= 5000。
对于100%的数据1 <= n <= 100000,m <= 100000,0 <= 格子权值 <= 10000。

#include <stdio.h>
#define N 100000
#define A 1000
#define B 100int sum(int* a, int m, int n)
{int i, s = 0;for (i = m; i <= n; i++)s += a[i];return s;
}int max(int* a, int m, int n)
{int i, s = a[m];for (i = m + 1; i <= n; i++)if (s < a[i])s = a[i];return s;
}int main()
{int i, j, k, m, n;int a[100000], b[100000][3], c[A][2] = {0};scanf("%d%d", &n, &m);for (i = 0; i < n; i++)scanf("%d", &a[i]);for (i = 0; i < m; i++)for (j = 0; j < 3; j++)scanf("%d", &b[i][j]);for (i = 0; i < (n + B - 1) / B; i++){c[i][0] = c[i][1] = a[i * B];for (j = i * B + 1; j < i * B + B && j < n; j++){c[i][0] += a[j];if (c[i][1] < a[j])c[i][1] = a[j];}}for (i = 0; i < m; i++){if (b[i][0] == 1){c[(b[i][1] - 1) / B][0] += b[i][2] - a[b[i][1] - 1];k = (b[i][1] - 1) / B;if (c[k][1] <= b[i][2]){c[k][1] = b[i][2];}else if (a[b[i][1] - 1] == c[k][1]){a[b[i][1] - 1] = b[i][2];c[k][1] = max(a, k * B, k * B + B > n ? n - 1 : k * B + B - 1);}a[b[i][1] - 1] = b[i][2];}else if (b[i][0] == 2){int s = 0;b[i][1]--, b[i][2]--;int o = b[i][2] / B - b[i][1] / B;if (o < 2){s = sum(a, b[i][1], b[i][2]);}else{s = sum(a, b[i][1], (b[i][1] + B) / B * B - 1);s += sum(a, b[i][2] / B * B, b[i][2]);for (j = b[i][1] / B + 1; j < b[i][2] / B; j++)s += c[j][0];}printf("%d\n", s);}else if (b[i][0] == 3){int s = 0, t;b[i][1]--, b[i][2]--;int o = b[i][2] / B - b[i][1] / B;if (o < 2){s = max(a, b[i][1], b[i][2]);}else{s = max(a, b[i][1], (b[i][1] + B) / B * B - 1);t = max(a, b[i][2] / B * B, b[i][2]);if (s < t) s = t;for (j = b[i][1] / B + 1; j < b[i][2] / B; j++)if (s < c[j][1])s = c[j][1];}printf("%d\n", s);}}return 0;
}

😜查找整数

问题描述
给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。

输入格式
第一行包含一个整数n。
第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
第三行包含一个整数a,为待查找的数。

输出格式
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。

样例输入
6
1 9 4 8 3 9
9

样例输出
2

数据规模与约定
1 <= n <= 1000。

#include <stdio.h>int main()
{int i, m, n, a[1000];scanf("%d", &n);for (i = 0; i < n; i++)scanf("%d", &a[i]);scanf("%d", &m);for (i = 0; i < n; i++)if (a[i] == m) break;if (i == n)printf("-1");elseprintf("%d", i + 1);return 0;
}

😜分解质因数

问题描述
  求出区间[a,b]中所有整数的质因数分解。

输入格式
  输入两个整数a,b。
输出格式
  每行输出一个数的分解,形如k=a1a2a3…(a1<=a2<=a3…,k也是从小到大的)(具体可看样例)

样例输入
3 10
样例输出
3=3
4=22
5=5
6=2
3
7=7
8=222
9=33
10=2
5

提示
  先筛出所有素数,然后再分解。
数据规模和约定
  2<=a<=b<=10000

#include <stdio.h>
#include <math.h>int factor(n)
{int i, j = (int)sqrt(n);if (n % 2 == 0) return 2;for (i = 3; i <= j; i++)if (n % i == 0) return i;return n;
}int main()
{int i, j, k, m, n;scanf("%d%d", &m, &n);for (i = m; i <= n; i++){j = factor(i);k = i / j;printf("%d=%d", i, j);while (k > 1){j = factor(k);k /= j;printf("*%d", j);}printf("\n");}return 0;
}

😜高精度加法

问题描述
  输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。

算法描述
  由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。
  定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。
  计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C[0],即C[0]等于(A[0]+B[0])%10。然后计算A[1]与B[1]相加,这时还应将低位进上来的值r也加起来,即C[1]应该是A[1]、B[1]和r三个数的和.如果又有进位产生,则仍可将新的进位存入到r中,和的个位存到C[1]中。依此类推,即可求出C的所有位。
  最后将C输出即可。

输入格式
  输入包括两行,第一行为一个非负整数a,第二行为一个非负整数b。两个整数都不超过100位,两数的最高位都不是0。
输出格式
  输出一行,表示a + b的值。

样例输入
20100122201001221234567890
2010012220100122
样例输出
20100122203011233454668012

#include <stdio.h>int main()
{int i;char a[101], b[101], c[102] = {0};scanf("%s%s", a, b);int alen = strlen(a);int blen = strlen(b);for (i = 0; i < alen || i < blen; i++){if (i < alen)c[i] += a[alen-i-1] - '0';if (i < blen)c[i] += b[blen-i-1] - '0';if (c[i] >= 10){c[i+1] = c[i] / 10;c[i] %= 10;}}if (alen < blen) alen = blen;if (c[alen] > 0) printf("%d", c[alen]);for (i = alen - 1; i >= 0; i--)printf("%d", c[i]);return 0;
}

👉其他

📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

温馨提示点击下方卡片获取更多意想不到的资源。
空名先生

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

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

相关文章

爬虫入门指南(5): 分布式爬虫与并发控制 【提高爬取效率与请求合理性控制的实现方法】

文章目录 前言多线程与多进程多线程多进程多线程和多进程的选择 使用Scrapy框架实现分布式爬虫1. 创建Scrapy项目2. 配置Scrapy-Redis3. 创建爬虫4. 启动爬虫节点5. 添加任务到队列 并发控制与限制请求频率并发控制限制请求频率 未完待续... 前言 在进行爬虫任务时&#xff0c;…

地下水管三维可视化综合管控平台提升政府服务质量

随着当前互联网技术数据的快速发展和增长&#xff0c;总数越来越大&#xff0c;结构越来越复杂。如果你想更清楚、更快地理解和理解数据&#xff0c;传统的二维平面图数据图性能不能满足需求。 什么是三维可视化? 三维可视化是一种利用计算机技术&#xff0c;再现三维世界中的…

Spring Boot中的@EnableWebSocketMessageBroker注解是什么,原理,以及如何使用

Spring Boot中的EnableWebSocketMessageBroker注解是什么&#xff0c;原理&#xff0c;以及如何使用 WebSocket是一种在Web浏览器和Web服务器之间进行双向通信的技术。在传统的HTTP通信中&#xff0c;客户端向服务器发送请求&#xff0c;服务器响应请求&#xff0c;然后关闭连…

Redis 主从复制 哨兵 集群

Redis 主从复制 哨兵 集群 一、Redis 主从复制1.1 Redis 主从复制介绍1.2 主从复制的作用1.3 主从复制的流程 二、搭建Redis 主从复制2.1 安装 Redis2.2 创建redis工作目录2.3 环境变量2.4 定义systemd服务管理脚本2.5 修改 Redis 配置文件&#xff08;Master节点操作&#xff…

ModaHub魔搭社区:向量数据库MIlvus服务端配置(三)

目录 gpu 区域 logs 区域 metric_config 区域 gpu 区域 在该区域选择是否在 Milvus 里启用 GPU 用于搜索和索引创建。同时使用 CPU 和 GPU 可以达到资源的最优利用&#xff0c;在特别大的数据集里做搜索时性能更佳。 若要切换到 CPU-only 模式&#xff0c;只要将 enable 设…

设计模式学习之代理模式

设计模式系列往期文章 设计模式学习之策略模式设计模式学习之策略模式在前端的应用设计模式学习之简单工厂模式设计模式学习之工厂方法模式设计模式学习之抽象工厂模式设计模式学习之策略模式和简单工厂模式的对比设计模式学习之观察者模式设计模式学习之模板方法模式 代理模…

Nginx-反向代理详解

本文已收录于专栏 《中间件合集》 目录 概念说明什么是Nginx什么是反向代理 功能介绍配置过程1.修改nginx配置文件修改全局模块修改工作模块修改HTTP模块 2.保存配置文件3.重启配置文件4.查看配置文件是否重启成功 配置反向代理的好处总结提升 概念说明 什么是Nginx Nginx 是一…

《企业性能测试:体系构建、落地指导与案例解读》——小解送书第四期

目录 介绍 抽奖 介绍 软件系统性能的重要性无须多言&#xff0c;没有哪个用户可以忍受一个响应缓慢的网站或者反应迟钝的软件。软件性能是用户体验的核心。大部分用户可能对软件性能并不了解&#xff0c;但他们永远想使用响应更迅速的软件。所以&#xff0c;性能是评估一个软…

R语言多元数据统计分析在生态环境中的实践应用

生态环境领域研究中常常面对众多的不同类型的数据或变量&#xff0c;当要同时分析多个因变量&#xff08;y&#xff09;时需要用到多元统计分析&#xff08;multivariate statistical analysis&#xff09;。多元统计分析内容丰富&#xff0c;应用广泛&#xff0c;是非常重要和…

SQL开源替代品,诞生了

发明 SQL 的初衷之一显然是为了降低人们实施数据查询计算的难度。SQL 中用了不少类英语的词汇和语法&#xff0c;这是希望非技术人员也能掌握。确实&#xff0c;简单的 SQL 可以当作英语阅读&#xff0c;即使没有程序设计经验的人也能运用。 然而&#xff0c;面对稍稍复杂的查…

【架构治理工具】在代码存储库中记录软件架构

Markdown 是一种标准的简单语法&#xff0c;用于创建具有专业外观的文档。它比 HTML 更简单&#xff0c;无需专门的编写编辑器即可进行管理。Git配置管理工具也支持markdown格式。在 Git 环境中&#xff0c;markdown 一般用于项目的简单介绍和构建说明。&#xff08;自述文件&a…

Vue 项目中使用WebSocket 消息推送

一、功能需求 1.这是我在后台管理项目中使用到的&#xff0c;主要的作用是搞一个消息提醒的功能。 2.主要有右上角的提示和有下角的消息弹框。 3.主要实现的功能是如果用户有未读的消息&#xff0c;那么首次登录就弹框&#xff0c;如果用户关闭了页面&#xff0c;那么再次刷新…