【蓝桥杯每日一题】3.8

devtools/2025/3/13 9:29:10/

Alt

🏝️专栏: 【蓝桥杯备篇】
🌅主页: f狐o狸x


        抱一丝各位,前面两个月生了一场重病没有更新,懒病太严重了,从现在开始接着这个专题更新

每天刷一题,头发少一根;但若放弃治疗,头发掉一吨!—— 秃头警告,但坚持就是胜利 

3.8

一、P1067 [NOIP 2009 普及组] 多项式输出

        链接: [NOIP 2009 普及组] 多项式输出

        题目描述:

         解题思路:

        这道题属于模拟题,考察你的代码能力,题目要求啥你就弄哈就OK了

        解题代码:

#include <iostream>
#include <cmath>using namespace std;int main()
{int n = 0;cin >> n;for(int i = n; i >= 0; i--){int a = 0; cin >> a;if(a == 0) continue;// 1.符号 if(a < 0)cout << "-";else if(a > 0){if(i != n)cout << "+";}// 2.数字  a = abs(a);if( a > 1 || (a == 1 && i == 0) )cout << a;// 3.xif( i > 1){cout << "x^" << i;}else if( i == 1)cout << "x";}return 0;} 

二、P5731 【深基5.习6】蛇形方阵

        题目链接:P5731 【深基5.习6】蛇形方阵

题目描述:

解题思路:

        这个题我们可以采用方向向量,如下图,因为是顺时针填充的,所以方向就是右、下、左、上,最后在按照题目意思,把越界的填充都改变方向,变成合法的填充就可以了

解题代码:

const int N = 10;// 定义方向向量
int dx[4] = { 0,1,0,-1 };
int dy[4] = { 1,0,-1,0 };int arr[N][N] = { 0 };int main()
{int n = 0; cin >> n;// 起始位置int x = 1;int y = 1;int pos = 0;for (int i = 1; i <= n * n; i++){arr[x][y] = i;int a = 1, b = 1;a = x + dx[pos];b = y + dy[pos];if (a < 1 || a > n || b < 1 || b > n || arr[a][b]){pos = (pos + 1) % 4;a = x + dx[pos];b = y + dy[pos];}x = a;y = b;}for (int i = 1; i <= n; i++){for (int j = 1; j <= n; j++){printf("%3d", arr[i][j]);}printf("\n");}return 0;
}

三、P1098 [NOIP 2007 提高组] 字符串的展开

题目链接:P1098 [NOIP 2007 提高组] 字符串的展开

题目描述:

解题思路:

        这题也是明显的模拟题,就按照题目描述的意思一步一步来,注意不要遗漏情况就可以了

解题代码:

string s;
string ret;int p1, p2, p3;
// 判断是否是小写字母
bool is_a(char ch)
{return ch >= 'a' && ch <= 'z';
}// 判断是否是数字
bool is_num(char ch)
{return ch >= '0' && ch <= '9';
}//增加函数
void add(char left, char right)
{string t;for (char ch = left + 1; ch < right; ch++){char tmp = ch;//处理p1if (p1 == 2 && is_a(ch) && is_a(right)){tmp -= 32;}else if (p1 == 3){tmp = '*';}//处理p2for (int i = 0; i < p2; i++){t += tmp;}}//处理p3if (p3 == 2){reverse(t.begin(), t.end());}ret += t;
}int main()
{cin >> p1 >> p2 >> p3 >> s;int l = s.size();// 遍历字符串,找‘-’for (int i = 0; i < l; i++){if (i == 0 || i == l - 1 || s[i] != '-') ret += s[i];else{//找到字符串判断是否能展开char left = s[i - 1];char right = s[i + 1];if (is_a(left) && is_a(right) && left < right ||is_num(left) && is_num(right) && left < right){add(left, right);}else ret += s[i];}}cout << ret;return 0;
}

        键盘敲响的不仅是算法,更是逆袭的节奏!!!各位加油!


http://www.ppmy.cn/devtools/166732.html

相关文章

数据量过大的时候导出数据很慢

原因解析 速度慢无非两个原因: sql取数很慢程序很慢 sql很慢有3种原因: sql本身查询不合理,需要优化数据库没有索引多次频繁访问数据,造成了不必要的开销 取消多次获取数据,一次获取 框定一个大致的范围,获取此次查询的所有数据使用map设置数据,没有主键使用傅和主键拼接数据 /…

Java多线程与高并发专题——阻塞和非阻塞队列的并发安全原理是什么?

引入 之前我们探究了常见的阻塞队列的特点&#xff0c;在本文我们就以 ArrayBlockingQueue 为例&#xff0c;首先分析 BlockingQueue &#xff0c;也就是阻塞队列的线程安全原理&#xff0c;然后再看看它的兄弟——非阻塞队列的并发安全原理。 ArrayBlockingQueue 源码分析 …

【网络协议详解】——QOS技术(学习笔记)

目录 QoS简介 QoS产生的背景 QoS服务模型 基于DiffServ模型的QoS组成 MQC简介 MQC三要素 MQC配置流程 优先级映射配置(DiffServ域模式) 优先级映射概述 优先级映射原理描述 优先级映射 PHB行为 流量监管、流量整形和接口限速简介 流量监管 流量整形 接口限速…

什么样的场景适用redis?redis缓存是什么?

基于 Java SSH 老项目、数据量大、查询慢、尽量少改动的现状&#xff0c;如果加入 Redis&#xff0c;可以从哪些场景切入&#xff1a; 1. 高频读取、低频更新的数据 场景示例&#xff1a; 商品信息、用户基础资料&#xff08;每日读取百万次&#xff0c;每周更新一次&#xff…

vue3自定义指令实现输入框值范围大小限制

// 自定义指令代码 export default (vue: any) > {const handler ($event: Event) > {const inputEl $event.target as HTMLInputElement;let maxValue inputEl.max ? parseFloat(inputEl.max) : 0;let minValue inputEl.min ? parseFloat(inputEl.min) : 0;let va…

【js逆向】iwencai国内某金融网站实战

地址&#xff1a;aHR0cHM6Ly93d3cuaXdlbmNhaS5jb20vdW5pZmllZHdhcC9ob21lL2luZGV4 在搜索框中随便输入关键词 查看请求标头&#xff0c;请求头中有一个特殊的 Hexin-V,它是加密过的&#xff1b;响应数据包中全是明文。搞清楚Hexin-V的值是怎么生成的&#xff0c;这个值和cooki…

学习网络安全需要哪些基础?

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 学习网络安全&#xff0c;对于想要进入IT行业的朋友们来说是一件非常重要的事情。尤其是在当今社会&#xff0c;互联网已经渗透到工作和生活的方方面面&#xff0…

计算机网络开发(3)——端口复用、I\O多路复用

端口复用 由于有一个MSL&#xff0c;所以上一秒关闭的服务器&#xff0c;可能之前的端口还未释放&#xff1b;又或者是程序突然退出系统没有释放端口&#xff0c;导致端口被占用。 当有新的服务想要用这个端口的时候&#xff0c;会出现错误&#xff1a;服务会出现Bind error:A…