题解列表

筛选

蓝桥杯2018年第九届真题-堆的计数(递推)

解题思路:采用递推的思想,利用dp[i]记录i排列时可以构造出合法的堆的情况数,由于堆只要求数字的相对大小,故不相等的n个数字可以构造出堆的个数是一致的,同时最小的数字一定在堆顶,(因为如果最小的数字不在堆顶,堆顶的数字就会比它大,堆不合法),对于n个数字的堆,

字符串的修改动归解法

解题思路:动态规划算法注意事项:使用一个二维数组dp来存储中间结果,其中dp[i][j]表示将字符串A的前i个字符转换为字符串B的前j个字符所需的最少字符操作次数。通过动态规划的方式计算出dp[m][n],即将整个字符串A转换为整个字符串B所需的最少字符操作次数。

蓝桥杯2018年第九届真题-自描述序列(二分)

解题思路:如果依照题意直接模拟会超时,只能通过30%的测试点。没有找到明显的数学规律,我们试图改进模拟方案。我们发现直接的模拟方案有一个缺陷,大量重复的数字占据了数组,我们改进此种方案,仅仅all数组记录下标的数字在G序列中的开始出现位置的下标,

链表数据求和操作健壮解

解题思路:createComplex函数用于创建一个新的复数节点,并为其分配内存。insertComplex函数用于将复数节点插入链表中。printComplexList函数用于打印链表中的复数。calculateSum函数用于计算链表中所有复数的和。

求这道题的一种代码思路(C语言)

摘要:解题思路:主要是找他们之间的规律,比如分子是从2开始,分母是从1开始,下一个分子就是上一个分子加上一个分母的和,下一个分母就是上一个分子的值。注意事项:参考代码:#include<stdio.h> ……

蓝桥杯2018年第九届真题-搭积木(区间dp)

摘要:解题思路:构建数组dp[i][j][k]代表第i层,积木从i到k时可能的情况种类。转移方程为dp[i][j][k]=∑dp[i-1][x][y](x<=j且y>=k),如果依照此方式转移,复杂度为O(……

多层循环遍历绘制

摘要:解题思路:先把每种图形的第一遍绘制出来,再根据重复度绘制该类图形注意事项:要讨论m=1和m大于1(m!=1)的情况参考代码:#include<cstdio>int main(){ int n; sca……

这破题难就难在debug,全是小错误

解题思路:由于这一题需要判断每个点的情况并且决定是否增加数值,因此需要利用二维列表依次进行判断,不能使用一维列表直接存一段字符串,这里将非雷的元素全部替换为0,对每一个雷进行判断,周围的位置如果有非雷点就对其加一注意事项:全是小错误,要多练习,