![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝桥杯
梦呓abcd
这个作者很懒,什么都没留下…
展开
-
【蓝桥杯】算法很美 ----7 深搜+递归+回溯剪枝
1.1逐步生成结果类问题之数值解cc9.1上楼梯cc9.2机器人走方格cc9.8硬币表示cc9.1自上而下取看,更直观,直接写出递推公式分析:一层:1种(1)两层:2种(1+1,2)三层:4种(1+1+1,1+2,2+1,3)四层:先走一层,还剩三层:4 先走两层,还剩两层:2 先走三层,还剩一层:1 f(4) = f(3)+f(2)+f(1) 得到递归式:f(n) = f(n-1) + f(n-2) + f(n-3)cc9.2递推:cc9.8以1原创 2020-08-08 20:00:08 · 380 阅读 · 0 评论 -
蓝桥杯--c++ sort
头文件algorithm注意sort第二个参数要比排序结尾的数大一最好不要用false原创 2020-08-08 14:58:19 · 157 阅读 · 1 评论 -
蓝桥杯--年份处理
闰年:1、年份非整百且能被4整除 (year % 4 = = 0 && year % 100 != 0)2、年份能被400整除 (year%400 = = 0)需要注意的是:能被100整除的数,必须能被400整除才算是闰年question1:星期几输入年月日,输出星期几#include<iostream>#include<cstring>using namespace std;int whatDay(int y, int m, int d){原创 2020-08-08 14:44:44 · 288 阅读 · 0 评论 -
递归1--gcd欧几里得
// 辗转相除法// 如果m%n = 0, 则n为最大公约数 // 如果m%n=k n%k #include<iostream>using namespace std;int gcd(int m, int n){ if(m % n == 0) return n; else gcd(n, m%n);}原创 2020-08-07 17:48:02 · 124 阅读 · 0 评论 -
分治4--逆序对
逆序对在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。输入: arr[]={8,5,4,2,1}输出: 10解释: 逆序对为(8,5)、(8,4)、(8,2)、(8,1),(5,4)、(5,2)、(5,1),还有(4,2)、(4,1)和(2,1),总共10个。其实也可以直接计算5(5-1)/2=10,前提是知道数组完全逆序输入: arr[]={5,1,4,2,8}输出: 4解释: 逆序对为(5,1)、(5,4)、(5原创 2020-08-07 12:55:24 · 176 阅读 · 0 评论 -
分治1---奇数在左
奇数在左 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组前半部分 要求时间复杂度O(n) 思路1:开一个n大小的数组,扫描一次双指针思路2:不开辟新空间,利用快排的思想,找到左面第一个偶数和右面第一个奇数交换 #include<iostream>using namespace std;void f(int arr[], int left, int right){ int i = left; int j = right; while(i <原创 2020-08-06 16:48:03 · 109 阅读 · 0 评论