蓝桥杯知识点对应的复习题

【注】
long long
字母大写变小写+=32

分离整数的各个位数

int main()
{int a; cin >> a;while (a>0){cout << a % 10 << " ";a /= 10;}return 0;
}

素数

试除法
bool check(int n)
{if (n < 2)return false;for (int i = 2; i <= sqrt(n); i++){if (n % i == 0)return false;}return true;
}
int main()
{int a, b; cin >> a >> b;for (int i = a; i <= b; i++){if (check(i))cout << i << endl;}return 0;
}
埃氏筛

原理:每次将素数的倍数全部标记上

const int N = 1e3 + 10;
bool vis[N];//标记数组
int prime[N];//素数表 0是素数 1不是素数
int id = 1;
//埃氏筛--O(nlonglongn)
void E_sieve(int n)
{//标记 0 1vis[0] = vis[1] = 1;for (int i = 2;i<=n; i++){if (vis[i] == 0)//是素数{prime[id++] = i;//筛掉素数i的所有倍数for (int j = i * i; j <= n; j += i){vis[j] = 1;}}}
}int main()
{int n; cin >> n;E_sieve(n);for (int i = 1; i < id; i++)cout << prime[i] << endl;return 0;
}

完全平方数

int main()
{int a; cin >> a;if (sqrt(a) == int(sqrt(a)))cout << "Y";elsecout << "N";return 0;
}

分解质因数

int main()
{int n; cin >> n;int i = 2, flag = 0;cout << n << "=";while (n != 1){if (n % i == 0){if (flag == 0){cout << i, flag = 1;}elsecout << "*" << i;n /= i;}elsei++;}return 0;
}

质因数的分解

int main()
{int n; cin >> n;for (int i = 2;; i++){if (n % i == 0){cout << n / i;break;}}return 0;
}

求第n小的质数

bool check(int n)
{if (n < 2) return false;for (int i = 2; i <= sqrt(n); i++){if (n % i == 0)return false;}return true;
}
int main()
{int n; cin >> n; int cnt = 0;for (int i = 2;; i++){if (check(i)){cnt++;if (cnt == n){cout << i;break;}}}return 0;
}

数组求最大值(第一个元素作为最大小值)

const int N = 1e3 + 10;
int a[N];
int main()
{int n; cin >> n;cin >> a[1]; int mx = a[1];int mxid = 1;for (int i = 2; i <= n; i++){cin >> a[i];if (a[i] > mx){mx = a[i];mxid = i;}}cout << mxid << endl;return 0;
}

***最长连续相同子序列-双指针版

#include<iostream>
#include<vector>
using namespace std;int main() {int n;  cin >> n;vector<int> v;for (int i = 0; i < n; i++) {int x; cin >> x;v.push_back(x);}v.push_back(0);int maxlen = 1, l = 0;for (int r = 1; r < v.size(); r++) {if (r == v.size()-1) {if (r - l > maxlen) maxlen = r - l;break;}if(v[l]!=v[r]){if (r - l > maxlen) maxlen = r - l;l = r;}}cout << maxlen << endl;return 0;
}

整数去重

const int N = 2e4 + 10,M=5e3+10;
int a[N],cnt[M];
int main()
{int n; cin >> n;for (int i = 1; i <= n; i++){cin >> a[i];if (cnt[a[i]] == 0)cout << a[i]<<" ";cnt[a[i]]++;}return 0;
}

矩阵乘法(三层for循环)

const int N = 1e2+10;
int a[N][N], b[N][N],c[N][N];
int main()
{int n, m, k; cin >> n>>m>>k;for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++)cin >> a[i][j];for (int i = 1; i <= m; i++)for (int j = 1; j <= k; j++)cin >> b[i][j];//n*kfor (int i = 1; i <= n; i++){for (int j = 1; j <= k; j++){for (int k = 1; k <= m; k++){c[i][j] += a[i][k] * b[k][j];}cout << c[i][j]<<" ";}cout << endl;}return 0;
}

字符串排序

#include<iostream>
#include<algorithm>
#include<cmath>
#include<vector>
using namespace std;
const int N = 1e2 + 10;
//字符串数组
string a[N];
int main()
{int n; cin >> n;for (int i = 1; i <= n; i++){cin >> a[i];}sort(a+1,a+1+n);// 参1--数组首元素地址for (int i = 1; i <= n; i++)cout << a[i] << endl;return 0;
}

线性序列变环

int main()
{string s1; string s2;cin >> s1 >> s2;if (s1.length() < s2.length())swap(s1, s2);s1 += s1;if (s1.find(s2) != -1)cout << "true" << endl;elsecout << "false" << endl;return 0;
}

判断回文

反转函数
int main()
{string s,r;getline(cin, s);r = s;reverse(s.begin(), s.end());if (s == r)cout << "yes";elsecout << "no";return 0;
}
冒泡排序
const int N = 1e2 + 10;
int a[N];
/*冒泡排序*/
int main()
{int n; cin >> n;for (int i = 1; i <= n; i++)cin >> a[i];for (int j = n; j > 1; j--) {for (int i = 1; i < j; i++){if (a[i] < a[i + 1])swap(a[i], a[i + 1]);}}for (int i = 1; i <= n; i++){cout << a[i]<<endl;}return 0;
}

选择排序(最小交换次数)

const int N = 1e2 + 10;
int a[N];
int main() {int n;   cin >> n;for (int i = 1; i <= n; i++) cin >> a[i];for (int i = 1; i <= n; i++) {//默认第i个元素是最小的int maxId = i;for (int j = i + 1; j <= n; j++) {if (a[j] > a[maxId]) {maxId = j;}}swap(a[i], a[maxId]);}for (int i = 1; i <= n; i++) cout << a[i] << endl;return 0;
}

计数排序

const int N = 1e2 + 10;
int a[N],cnt[1010];
int main()
{int n; cin >> n;for (int i = 1; i <= n; i++){cin >> a[i];cnt[a[i]]++;}for (int i = 1000; i >= 0; i--){while(cnt[i]){cout << i << endl;cnt[i]--;}}return 0;
}

表达式问题--前中后

前缀表达式
double fun()
{string s; cin >> s;if (s[0] == '+')return fun() + fun();else if (s[0] == '-')return fun() - fun();else if (s[0] == '*')return fun() * fun();else if (s[0] == '/')return fun() / fun();else return stod(s);
}int main()
{printf("%lf", fun());return 0;
}

搜索与回溯

abc全排列
#include<iostream>
using namespace std;
const int N = 1e2 + 10;
string s;
bool vis[N];
char cnt[N];
void dfs(int dep)
{if (dep == s.size()){for (int i = 0; i < dep; i++)cout << cnt[i];cout << endl;return ;}for (int i = 0; i < s.size(); i++){if (!vis[i]){vis[i] = 1;cnt[dep] = s[i];dfs(dep + 1);vis[i] = 0;}}
}
int main()
{cin >> s;dfs(0);return 0;
}
组合问题
 #include<iostream>
using namespace std;
const int N = 10;
bool vis[N];
int cnt[N];
int n,r;
void dfs(int dep) {//5.终止条件+结果处理if (dep == r+1) {for (int i = 1; i < dep; i++) {printf("%3d", cnt[i]);}cout << endl;return;}//1.枚举方案for (int i = cnt[dep-1]+1; i <= n; i++) {//2.标记-防止重复搜索if (!vis[i]) {//3.搜索vis[i] = 1;cnt[dep] = i;dfs(dep+1);//4.回溯vis[i] = 0;}}
}
int main() {cin >> n >> r;;dfs(1);return 0;
}
广搜求迷宫问题最短路
char g[N][N];//迷宫数组
bool vis[N][N];//标记数组
int sx, sy, tx, ty;
int dx[] = { 0,0,1,-1 }, dy[] = { 1,-1,0,0 };
int n, m;
struct point { int x, y, step; };
int ans;
void bfs(point s) {queue<point> q;q.push(s);  vis[s.x][s.y] = 1;while (!q.empty()) {point cur = q.front();  q.pop();if (cur.x == tx && cur.y == ty) {ans= cur.step - 1 ;return;}for (int i = 0; i < 4; i++) {int bx = cur.x + dx[i], by = cur.y + dy[i];if (bx<1 || bx>n || by<1 || by>m) continue;if (g[bx][by] == '#') continue;if (vis[bx][by]) continue;q.push({ bx,by,cur.step + 1 });  vis[bx][by] = 1;}}
}
int main() {while (cin >> n >> m&&n&&m) {for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {cin >> g[i][j];if (g[i][j] == '@') sx = i, sy = j;if (g[i][j] == '*') tx = i, ty = j;}}ans = -1;memset(vis, 0, sizeof vis);bfs({ sx,sy,1 });cout << ans << endl;}return 0;
}

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

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

相关文章

cookie和session的区别(七大不同)

文章目录 cookie和session的区别&#xff08;七大不同&#xff09;1、存储位置不同:2、安全性:3、性能方面:4、存储大小:5、生命周期:6、使用场景:7、数据类型不同&#xff1a; cookie和session的区别&#xff08;七大不同&#xff09; 1、存储位置不同: Cookie 存储在客户端…

基于springboot实现的学生评奖评优管理系统的设计与实现(源码|论文)

系统概述 springboot实现的学生评奖评优管理系统的设计与实现&#xff0c;系统分Web端和后台管理端&#xff0c;后端采用的是springbootmybatis&#xff0c;前端采用vuehtml&#xff0c;代码简洁易懂&#xff0c;有配套论文初稿&#xff0c;适合新手小白学变编程... 一、系统架…

RocketMQ—RocketMQ集成SpringBoot

RocketMQ—RocketMQ集成SpringBoot 新建生产者的boot项目和消费者的boot项目&#xff0c;pom文件重点如下&#xff1a; <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</arti…

Docker 中的挂载机制

Docker 挂载机制 Docker 的挂载机制允许将宿主机的文件或目录挂载到 Docker 容器内部&#xff0c;这样容器就可以访问宿主机上的文件系统。Docker 提供了多种挂载方式&#xff0c;包括以下几种&#xff1a; 绑定挂载&#xff08;Bind Mounts&#xff09;&#xff1a;通过绑定挂…

Docker中使用nginx-rtmp推拉网络摄像头视频流

前言&#xff1a; 该部分比较麻烦&#xff0c;闹腾了好久&#xff08;ffmpeg推拉流没学过&#xff0c;事实证明依葫芦画瓢是不行滴&#xff0c;后面有时间再学吧&#xff09;&#xff0c;后来借助chatGPT勉强解决&#xff0c;但不是很懂。因个人能力有限&#xff0c;只复述操作…

Starknet(strk) 跨链桥教程:手把手教你用bitget钱包跨链

摘要&#xff1a;通过Rhino.fi &#xff0c;将资产无缝桥接至Starknet&#xff08;web3.bitget.com/zh/assets/starknet-wallet&#xff09;变得高效且具有成本效益&#xff0c;Rhino.fi 是一个以其快速处理时间和低交易费用而闻名的平台。它专为与 MetaMask 等流行的 Web 3 钱…

长整数拼接后求余数

原题&#xff1a;2024牛客寒假算法基础集训营3 M题 方法一&#xff1a; 用递归进行长整数除法&#xff0c;暴力寻找&#xff0c;但是会超时 #include <bits/stdc.h> using namespace std; bool f(string &s, int ans,int count) {if (count > s.size()) {if (a…

Newsmy储能电源与您相约九州汽车生态博览

2024年3月7日—10日&#xff0c;第24届 深圳国际智慧出行、汽车改装及汽车服务业态博览会&#xff08;以下简称“九州汽车生态博览会”&#xff09;将在深圳国际会展中心&#xff08;宝安&#xff09;举办&#xff0c;Newsmy纽曼集团将在3号馆32523展位&#xff0c;携全系产品与…

2024年3月6日 十二生肖 今日运势

小运播报&#xff1a;2024年3月6日&#xff0c;星期三&#xff0c;农历正月廿六 &#xff08;甲辰年丁卯月己巳日&#xff09;&#xff0c;法定工作日。 红榜生肖&#xff1a;牛、猴、鸡 需要注意&#xff1a;鼠、虎、猪 喜神方位&#xff1a;东北方 财神方位&#xff1a;正…

nginx 常见面面问题

1.什么是 Nginx&#xff1f; Nginx 是一个 轻量级 / 高性能的反向代理 Web 服务器&#xff0c;用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。他实现非常高效的反向代理、负载平衡&#xff0c;他可以处理 2-3 万并发连接数&#xff0c;官方监测能支持 5 万并发&#xff0c;现在中…

Java毕业设计 基于SpringBoot 众筹网

Java毕业设计 基于SpringBoot 众筹网 SpringBoot 众筹网 功能介绍 注册 邮箱验证码 登录 忘记密码 首页 图片轮播 关于我们 项目列表 发布项目 我的添加项目 提交审核 已在募捐 项目详情 项目介绍 项目进展 捐赠列表 评论 新闻列表 发布新闻 新闻详情 评论新闻 联系我们 提交…

Linux笔记--静态库和动态库

库是指在我们的应用中&#xff0c;有一些公共代码是需要反复使用&#xff0c;就把这些代码编译为"库"文件;在链接步骤中&#xff0c;链接器将从库文件取得所需的代码&#xff0c;复制到生成的可执行文件中。 Linux中常见的库文件有两种&#xff0c;一种.a为后缀&…

GIS之深度学习10:运行Faster RCNN算法

&#xff08;未完成&#xff0c;待补充&#xff09; 获取Faster RCNN源码&#xff08;开源的很多&#xff09; 替换自己的数据集&#xff08;图片标签文件&#xff09; 打开终端&#xff0c;进入gpupytorch环境 运行voc_annotation.py文件生成与训练文件 E:\DeepLearningMode…

Linux配置VNC实现远程控制,提高运维效率

VNC介绍 1.1 VNC简介 VNC (Virtual Network Console)是虚拟网络控制台的缩写。它 是一款优秀的远程控制工具软件&#xff0c;可以实现远程控制计算机的功能。 1.2 VNC组成 VNC基本上是由两部分组成&#xff0c;在任何安装了客户端的应用程序(vncviewer)的计算机都能十分方便…

蓝桥杯第1390题——A Careful Approach

题目描述 如果你认为参加一个编程比赛让你感到有压力&#xff0c;那么请你想象你是一个空中交通管制员。因为人命关天&#xff0c;所以一个空中交通管制员必须在时刻变化的环境中专注于任务&#xff0c;解决不可预知的事件。 让我们将目光转向飞机的着陆流程。飞机进入目的地飞…

人事档案转出需要注意哪些方面

人事档案转出是指将员工的人事档案从一个部门、公司或组织转移到另一个部门、公司或组织的过程。这个过程需要注意以下几个方面&#xff1a; 1.法律合规&#xff1a;在进行人事档案转出前&#xff0c;要确保遵守相关的法律法规和公司内部规定。例如&#xff0c;要确保有合法的授…

vue-lazyload 图片懒加载的原理与使用

一、图片懒加载vue-lazyload是什么&#xff1f; 背景&#xff1a; 图片是非常占用页面渲染时间的&#xff0c;尤其是一些图片比较多的页面&#xff0c;过多的图片可能会造成页面的卡顿&#xff0c;降低流畅度影响用户体验&#xff0c;我们在实际开发中&#xff0c;对于处于视口…

Redis 7.0版本主从复制机制

1、引言 Redis是一个开源、高性能、内存键值存储系统&#xff0c;同时也提供了数据结构服务器的功能。它支持五种主要的数据类型&#xff1a;字符串&#xff08;String&#xff09;、哈希表&#xff08;Hashes&#xff09;、列表&#xff08;Lists&#xff09;、集合&#xff…

【TEE】内存完整性保护

Hash Functions&Merkle Tree 对读操作进行完整性检查&#xff0c;通过在加载的块上重新计算一个哈希&#xff0c;然后根据片外地址将得到的哈希与片上哈希比较。 缺点&#xff1a;不可承受的片上存储开销&#xff0c;并假设128位哈希和512位cache line&#xff0c;其开销为…

LABEL-EFFICIENT SEMANTIC SEGMENTATION WITHDIFFUSION MODELS

基于扩散模型的标签高效语义分割 摘要&#xff1a; 去噪扩散概率模型最近受到了很多研究的关注&#xff0c;因为它们优于gan等替代方法&#xff0c;并且目前提供了最先进的生成性能。扩散模型的优越性能使其成为一些应用程序的吸引人的工具&#xff0c;包括绘图&#xff0c;超…