- 博客(6)
- 收藏
- 关注
原创 蓝桥杯14届幸运数自学记录
就相当于i是一个假设的数,把它带进去试一试看满不满足条件,如果满足,说明后面的数也还有机会去凑出这个all,则再进入这个函数,找下一个数是否有这个机会,一直到n=1的时候,如果此时的y满足>=0,<=0,那就说明这是一个解,传1回去。所以我们把一个数可以分成两半,前半部分从1-9,10-99,100-199,1000-1999,后面就是0,00,000,0000。在主函数中,i用来遍历数,ii用来算前半部分的和,count用来统计所有的可能,如果i=99,那么n就加1,把位数变为3,第二种 :直接暴力解。
2025-04-09 16:19:19
396
原创 蓝桥杯团建学习记录
第一棵树的10的序号是1,1和2,3相连,那么先找2,权重为20,从第二棵树中看有没有20,1和2,3相连,2的权重为40,不对,再找3,3的权重为20,则可以继续往下走。对于相邻节点的输入,1 2 ->定义a[i]记录i的相邻节点,那么对于a[1]来说,它的相邻节点就是a[1]={2}, a[2] = {1}第一棵树的20的序号是2,2与4相连,权重为40,再找第二棵树,与4相连,权重为30,没有,且走到末尾了,此时记录的最长前缀为2。一棵树有n个节点,每个节点都有自己的权值,还有它的相邻结点的记录。
2025-03-29 15:38:48
457
原创 蓝桥杯成绩统计学习记录
由题意可知,k个同学是在x中随机的,没有顺序的,那么就是从x中要挑出最适合的k个同学,使得他们的方差是最小的,而方差是当数据越集中就会越小的,所以可以把这x个同学的成绩进行排序,这样就能让成绩集中,更好能计算了。因为n很大,如果让x从零遍历到n的话就会使得编译时间延长,所以我们可以采用二分法,先找x的大概位置,如果前x里面找不到小于T的,说明数据还是太分散了,还需要扩大数据,即x在n/2~n这个范围里面。有n个同学,有相应的n个成绩,小蓝要从这里面选前x个同学,使得k个同学的方差小于T,问x至少为多少。
2025-03-29 14:26:16
522
1
原创 蓝桥杯训练士兵学习记录
对于本题,我想要让士兵的次数从小到大排列,则我需要编写一个比较count的worsethan函数,如果前面的小于后面的返回true,代表是我想要的顺序。把士兵的价格从小到大排列,取money = min(apart, S), 则只需要把最前面的士兵的训练次数*money,就是目前的最优解,然后就可以统计后面的最优解,像这样排序的话总会把前面的消耗完才进行下一个的计算,如果不排列的话,还要一个一个地去找。一组士兵,有n个,团体训练的价格为S,注意,只要选择的是团体训练,价格都是S,不管人的数量是多少。
2025-03-25 11:02:54
237
原创 蓝桥杯对弈五子棋学习记录
题目的要求是平局,所以只有当黑白占满了棋盘才有可能平局=》白棋数量13,通过把数组每个数相加,判断白棋数量是否等于13,如果不等于,则不满足条件,return 0 退出check函数。用二进制来代表棋盘,1<<25,25个0把它分成五行,就表示棋盘,当增加1时,棋盘右下角就有了一个棋子,把这串数i放入check函数里面检验,去判断这盘棋是否满足题目要求。运用这两个就可以读取棋盘,记录在数组里面,并且因为1代表白棋,0代表黑棋,就可以很巧妙的得出白棋的数量。
2025-03-16 17:51:03
388
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅