- 博客(4)
- 收藏
- 关注
原创 蓝桥杯:纪念品分组
题目很长,要求巨多,仔细看完换种说法就是:要用最少的容器,把一堆东西平均分,不能超过容量上限,不能超过规定数量。这么说很明显就是贪心算法了。题目要求一组里最多不能超过两个物品,最重要的是要求每组价值相差较小,所以每组里的物品需要一大一小地搭配,这时候需要我们把物品价值排个序,排序算法可多了,最简单的就是桶排序:int arr2[1000000];void tongpaixu(int arr[]){ for(int i=0;i<n;i++) { ...
2022-03-19 16:46:52
1732
原创 蓝桥杯:斐波那契数列最大公约数
题目表示的很明确,要用两个算法,斐波那契数列是很经典的dp问题,最大公约数是很经典的辗转相除法,从而我理所应当的就定义一个数组存放斐波那契数列: long long int F[2021]={0}; F[1]=1; F[2]=1; for(int i=3;i<2021;i++) { F[i]=F[i-1]+F[i-2]; }自定义一个辗转相除法的函数来计算最大公约数:long long int gcd(long long int A,long long in..
2022-03-18 21:49:56
792
原创 蓝桥杯:数字三角形
看到这道题,脑海中想到的就是dp,第一步就可以开始找规律,但这时候发现一个有意思的地方,题目里说:“路径上的每一步只可沿左斜线向下或右斜线向下走”,然而看到输入样例的时候573 88 1 02 7 4 44 5 2 6 5会发现实际上其实:“是只能向下走或者向右下走”。此时我们可以定义一个二维数组:路径和sum[行][列],到这一行列的方法有两种,一种是从正上方sum[行-1][列],一种是从左上方sum[行-1][列-1],可以发现,到第一行第一...
2022-03-17 17:56:54
710
4
原创 经典DP:传球游戏
我的想法是先找规律,经过m次传球,球回到小蛮手上,必须通过2号或者n号,可以先定义一个二维数组:dp[第几次传球][球在谁手上]=有几种方法,第m次的时候,球回到小蛮手上,可以发现方法次数等于球传到2号手上的方法加上球传到n号手上的方法,即:dp[第m次传球][球在小蛮手上]=dp[第m-1次传球][球在2号手上]+dp[第m-1次传球][球在n号手上],依次类推,到第一次传球的时候,球只有两种传法,一个是小蛮传给2号,一个是小蛮传给n...
2022-03-17 17:04:45
3687
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人