IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 蓝桥杯每日练习 -> 正文阅读

[数据结构与算法]蓝桥杯每日练习

蓝桥杯冲冲冲~

回顾
🔖蓝桥杯每日练习(巧排扑克牌,质数拆分,日志统计,递增三元组,外卖店优先级)

🔖蓝桥杯每日练习(猴子分香蕉,等差数列,平方序列,倍数问题)


🔖蓝桥杯每日练习(纯质数(筛法的应用),最少砝码,灌溉)


🔖蓝桥杯每日练习(相乘,空间,发现环)


🚶引言

今天继续蓝桥杯每日练习~ 今天的题目相对简单,可以巩固一下基础算法。今天得题目没有用到什么数据结构与算法,可以说都是思维题,快到比赛了锻炼一下思维也是不错的~我是学习算法的小菜鸡,每天一个小知识点,我们国赛见~

🚀今日题目

💓神奇算式

题目描述

由 4 个不同的数字,组成的一个乘法算式,它们的乘积仍然由这 4 个数字组成。

比如:

210 x 6 = 1260
8 x 473 = 3784
27 x 81 = 2187
都符合要求。

如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的 3 种情况,一共有多少种满足要求的算式。
原题传送门

解题报告

就是一道模拟题,根据题意模拟就可以了。先dfs一个10的全排列(取前四位)然后用他们组合数字(遍历一下前两个乘数的位数)然后乘起来一位一位判断就可以了

参考代码(C++版本)

//本人菜鸡一个,代码又臭又长(主要是写前没想)太丢人了啊啊啊~
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int N = 15;
int st[N], num;
int ans;
vector<int>res;
void check() {
    int flag = 10;
    for (int i = 0; i < 3; i++) {
        int a = num / flag, b = num % flag, c = a * b;
        int t = 0;
        while (a) {
            t++;
            a /= 10;
        }
        while (b) {
            t++;
            b /= 10;
        }
        int ok = 1, cnt = 0;
        vector<int>h;
        if (t != 4) goto l; //如果乘数和不是4位,换言某一个数最高位0被省略了
        while (c) {
            cnt++;
            if (!st[c % 10]) ok = 0;
            h.push_back(c % 10);
            c /= 10;
        }
        sort(h.begin(), h.end());
        for (int i = 1; i < h.size(); i++)
            if (h[i] == h[i - 1]) ok = 0;
        if (ok && cnt == 4) ans++;
        l:
        flag *= 10;
    }
}

void dfs(int k) {
    if (k == 4) {
        check();
        return;
    }
    for (int i = 0; i <= 9; i++) {
        if (k == 0 && i == 0) continue; //最高位不能是0
        if (!st[i]) {
            st[i] = 1;
            num = num * 10 + i;
            dfs(k + 1);
            num /= 10;
            st[i] = 0;
        }
    }
}

int main()
{
    dfs(0);
    cout << ans / 2 << endl; //满足交换律的两种情况
    return 0;
}

🌟缩位求和

🌱题目描述

在电子计算机普及以前,人们经常用一个粗略的方法来验算四则运算是否正确。
比如:248×15=3720
把乘数和被乘数分别逐位求和,如果是多位数再逐位求和,直到是 1 位数,得2 + 4 + 8 = 14 ==> 1 + 4 = 5
1 + 5 = 6
5×6=3
而结果逐位求和为 3。
5×6 的结果逐位求和与 3 符合,说明正确的可能性很大!!(不能排除错误)
请你写一个计算机程序,对给定的字符串逐位求和。
原题传送门

🌴解题报告

打眼儿一看这不就是五行代码的事吗

先请各位自己找一下规律
在这里插入图片描述
我们惊喜的发现一组9个数,而且答案就是对9取余。如果余数为0,那么答案应该是9。

🌵参考代码(C++版本)

#include<iostream>
#include<string>

using namespace std;

string res;

int main() {
	cin >> res;
	int num = 0;
	for (int i = 0; i < (int)res.size(); i++) num += res[i] - '0';
	if (!(num % 9)) cout << 9;
	else cout << num % 9;
}

积木大赛

题目描述

春春幼儿园举办了一年一度的"积木大赛"。今年比赛的内容是搭建一座宽度为 n 的大厦,大厦可以看成由 n 块宽度为 1 的积木组成,第 i 块积木的最终高度需要是 h[i]。

在搭建开始之前,没有任何积木(可以看成 n 块高度为 0 的积木)。接下来每次操作,小朋友们可以选择一段连续区间 [L,R],然后将第 L 块到第 R 块之间(含第 L 块和第 R 块)所有积木的高度分别增加 1。

小 M 是个聪明的小朋友,她很快想出了建造大厦的最佳策略,使得建造所需的操作次数最少。但她不是一个勤于动手的孩子,所以想请你帮忙实现这个策略,并求出最少的操作次数。
原题传送门

打眼儿一看这不就是五行代码的事吗

🚗解题报告

我们读完题后可以发现,前一个的高度一定是能给后一个用的(因为每次操作的宽度不限)所以我们可以利用这一特点,构造一个类似差分数组的东西。

也可以发现一个高的的高度一定能给他周围的用,所以波峰才会被用到(如果一个数在一个范围内他左边的数单调递增右边的数单调递减,那么称他为一个波峰)所以对波峰求和然后特判也可以做

参考代码(C++版本)

#include <iostream>
using namespace std;
const int N = 1e5 + 10;
int q[N],n, ans;
int main()
{
	cin >> n;
	for (int i = 1; i <= n; i++) cin >> q[i];
	for (int i = 1; i <= n; i++) ans += max(q[i] - q[i - 1], 0);
	cout << ans << endl;
	return 0;
}
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:43:30  更:2022-03-16 22:43:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 12:52:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码