算法题
Bklls
上岸咯 cqu继续努力吧
展开
-
蓝桥杯方格分割C++
6x6的方格,沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。如图:p1.png, p2.png, p3.png 就是可行的分割法。试计算:包括这3种分法在内,一共有多少种不同的分割方法。注意:旋转对称的属于同一种分割法.使用DFS搜索,用一个二维的visit数组标记是否走过,回溯清空标记,遍历dire状态数组去深搜。#include<bits/stdc++.h>using namespace std;int dire[][2]={{-1,0},{0,1},{原创 2022-04-06 13:34:38 · 868 阅读 · 1 评论 -
力扣28.实现strStr()的KMP实现
class Solution {public: void getNext(string ch,int length,vector<int> &next) { next[0] = -1; int i=0,j=-1;//i是主串正在匹配的字符位置,j代表的是前面已经匹配成功的后一个。 while(i<length-1) { if(j==-1||ch[i]==ch[j]){ .原创 2022-04-04 17:43:31 · 502 阅读 · 0 评论 -
蓝桥杯ALGO-1000Kac糖果给你吃
一道小学生题,排序一下取前面的加起来,注意不要越界。#include<iostream>#include<algorithm>#include<vector>#include<functional>using namespace std;int main(){ int n, m;//n为有n堆糖果,m为能拿多少次 long long result=0;//最后能拿多少 cin >> n >> m; vecto原创 2022-03-19 21:08:46 · 294 阅读 · 0 评论 -
蓝桥杯ALGO-1001跳马
一道BFS搜索题,详细步骤都写着了。总结一下:1、bfs搜索,用一个队列来实现,先放一个,然后队列头访问到的依次放入。然后pop,再下一个,如此操作。2、学到了pair,确实挺好用的,pair<xx,xx>是将两个类型组合成一个类型,first,second方法可以访问其中第一个和第二个。#include <iostream>#include <algorithm>#include <vector>#include<functio原创 2022-03-19 20:54:17 · 1010 阅读 · 0 评论 -
蓝桥杯ALGO-1005数字游戏
这题是一题搜索题,因为说了如果有多个解,优先数字最小的,因此直接用dfs就可以。输出完一组后就不用输出了,为了节省时间,可以用一个判断,如果输出过了,就设置为1,后面的递归全部跳出即可。#include<iostream>#include<cmath>#include<string.h>#include<vector>using namespace std;int n, sum;//n为序列个数sum为累计和int panduan = 0原创 2022-03-15 16:44:50 · 4799 阅读 · 2 评论 -
蓝桥杯ALGO-1007印章
临时抱佛脚第一题。创建二维数组dp,dp[i][j],i代表拿的第i个印章,j表示已经凑到了j个印章。1.当i<j,不可能手机得到,当然是0。2.当j=1,i=1时候,只凑到一个,那肯定可以概率为1.但是当i>1时,还要考虑是n个中的哪一个所以是pow(p,i-1);3.dp[i][j]为拿i-1个的两种分类的和:①拿到重复的了dp[i-1][j]*(1.0*j)/n ...原创 2022-03-15 00:03:50 · 143 阅读 · 0 评论