随笔分类 -  数据结构与算法

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 21 下一页
摘要:1. 题目介绍 上图给出了一个数字三角形。 从三角形的顶部到底部有很多条不同的路径。 对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右边的那个数。 输入格式 输入的第一行包含一个整数 N,表示三角形的行数。 阅读全文
posted @ 2024-04-10 03:11 DawnTraveler 阅读(79) 评论(0) 推荐(0)
摘要:1.题目 题目描述 小 A 的学校,老师好不容易解决了蓝桥杯的报名问题,现在老师又犯愁了。 现在有 N 位同学参加比赛,但是老师想给他们排座位,但是排列方式太多了。 老师非常想弄明白最后的排座次的结果是什么样子的,到底有多少种结果。 请设计一个程序帮助老师。 最后输出各种情况的人名即可,一行一种情况 阅读全文
posted @ 2024-04-09 23:13 DawnTraveler 阅读(116) 评论(0) 推荐(0)
摘要:0.题目 题目描述 小A的学校,蓝桥杯的参赛名额非常有限,只有 m 个名额,但是共有 n 个人报名。 作为老师非常苦恼,他不知道该让谁去,他在寻求一个绝对公平的方式。 于是他准备让大家抽签决定,即 m 个签是去,剩下的是不去。 小 A 非常想弄明白最后的抽签结果会有多少种不同到情况,请你设计一个程序 阅读全文
posted @ 2024-04-09 22:38 DawnTraveler 阅读(66) 评论(0) 推荐(0)
摘要:0.题目介绍 【题目描述】 请你设计一个程序对该问题进行解答。 众所周知在扑克牌中,有一个老掉牙的游戏叫做 24 点,选取 4 张牌进行加减乘除,看是否能得出 24 这个答案。 现在小蓝同学发明了一个新游戏,他从扑克牌中依次抽出6张牌,注意不是一次抽出,进行计算,看是否能够组成 42 点,满足输出 阅读全文
posted @ 2024-04-09 16:49 DawnTraveler 阅读(78) 评论(0) 推荐(0)
摘要:0.题目 1.题解 1.1 双指针暴力枚举 思路 思路很简单,但是最坏可能 \(O(n^2)\), 导致超时 代码 #include <bits/stdc++.h> using namespace std; const int M = 1e5; int ans = 0x7FFFFFFF; int a 阅读全文
posted @ 2024-04-09 16:01 DawnTraveler 阅读(24) 评论(0) 推荐(0)
摘要:0.问题 C++中并没有类似split的分隔符函数,如何自建一个呢? 我们考虑使用getline来实现所需功能。 1.代码 #include <iostream> #include <string> #include <vector> #include <sstream> // 使用字符串流将字符串 阅读全文
posted @ 2024-04-09 11:28 DawnTraveler 阅读(34) 评论(0) 推荐(0)
摘要:[蓝桥杯 2014 国 A] 排列序数 题目描述 如果用 a b c d 这 \(4\) 个字母组成一个串,有 \(4!=24\) 种,如果把它们排个序,每个串都对应一个序号: abcd 0 abdc 1 acbd 2 acdb 3 adbc 4 adcb 5 bacd 6 badc 7 bcad 阅读全文
posted @ 2024-04-09 11:05 DawnTraveler 阅读(16) 评论(0) 推荐(0)
摘要:0.使用二进制方式求子集 例如: a5 a4 a3 a2 a1 1 1 1 1 1 1.代码模板 #include<bits/stdc++.h> using namespace std; int n; int a[] = {1,2,3,4,5,6,7,8,9,10}; // 求 a[0] -> a[ 阅读全文
posted @ 2024-04-09 10:52 DawnTraveler 阅读(30) 评论(0) 推荐(0)
摘要:0.简介 在排列型枚举中,我们从给定的元素集合中选择出若干个元素的所有可能排列,这些排列考虑了元素的顺序. 1.代码模板 #include<bits/stdc++.h> using namespace std; int n; int order[20]; bool chosen[20]; // x代 阅读全文
posted @ 2024-04-09 09:16 DawnTraveler 阅读(118) 评论(0) 推荐(0)
摘要:0.题目 1.题解 1.1 DFS搜索(失败) 思路 思路很简单,但是还有可能遇到重复的情况,比如像3->35->353 和 5->53->533 是重复的 但是递归过深,导致超时. 代码 #include<bits/stdc++.h> #define ll long long using name 阅读全文
posted @ 2024-04-09 02:45 DawnTraveler 阅读(10) 评论(0) 推荐(0)
摘要:0.题目 题目描述 几个人一起出去吃饭是常有的事。但在结帐的时候,常常会出现一些争执。 现在有 \(n\) 个人出去吃饭,他们总共消费了 \(S\) 元。其中第 \(i\) 个人带了 \(a_i\) 元。幸运的是,所有人带的钱的总数是足够付账的,但现在问题来了:每个人分别要出多少钱呢? 为了公平起见 阅读全文
posted @ 2024-04-08 21:48 DawnTraveler 阅读(31) 评论(0) 推荐(0)
摘要:0. 题目 1. 题解 1.1 基于中心扩展的字符串处理算法 思路 我们可以选定一个中心,然后从中心开始,向外扩展我们的子串,且能存储之前子串的部分性质(这里便于左等于右的情况) 0. 确定中心点 这里我们用外层一个大循环来表示,中心点即为变量i。 首先分为子串为奇数串和偶数串的情况 奇数串的话比如 阅读全文
posted @ 2024-04-08 16:45 DawnTraveler 阅读(36) 评论(0) 推荐(0)
摘要:0.题目 1.题解 1.1 数学分析 思路 主要就是类似剪枝的思想,x必定满足某种条件,我们可以分奇偶情况进行讨论,最后在得出条件后使用暴力枚举. x = (y-z)(y+z) 由于 奇数 ± 偶数 = 奇数, 偶数 ± 偶数 = 偶数, 奇数 ± 奇数 = 偶数; 可以看出只要y,z的奇偶性质定了 阅读全文
posted @ 2024-04-08 11:53 DawnTraveler 阅读(61) 评论(0) 推荐(0)
摘要:1.题目 2.题解 2.1 贪心 + 堆 思路 由于如下图公式所示: 要获取的是最大值(最坏情况), 故如果increase增量小于零则没有必要讨论(存在刚开始由于b较大使得增量大于零,而k小于0,后面由于x增大导致增量为负值) 可利用贪心局部最优(每次选择加人时,均是选择增量最大的一组),实现全局 阅读全文
posted @ 2024-04-08 10:54 DawnTraveler 阅读(128) 评论(0) 推荐(0)
摘要:0.题目 小蓝正在参与一个现场问答的节目。 活动中一共有 30 道题目,每题只有答对和答错两种情况,每答对一题得 10 分,答错一题分数归零。 小蓝可以在任意时刻结束答题并获得目前分数对应的奖项,之后不能再答任何题目。 最高奖项需要 100 分,所以到达 100 分时小蓝会直接停止答题。 已知小蓝最 阅读全文
posted @ 2024-04-06 16:16 DawnTraveler 阅读(570) 评论(0) 推荐(0)

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 21 下一页