![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝桥杯
爱吃代码的航航
这个作者很懒,什么都没留下…
展开
-
第六届蓝桥杯 生命之树 树形dp
树形dp 蓝桥杯 dfs原创 2022-06-15 16:12:45 · 105 阅读 · 0 评论 -
区间dp 石子合并 以及蓝桥杯 密码脱落
蓝桥杯 区间dp 模板原创 2022-06-15 15:05:25 · 143 阅读 · 0 评论 -
蓝桥杯 外卖店优先级
蓝桥杯 外卖店优先级原创 2022-06-06 23:04:38 · 110 阅读 · 0 评论 -
蓝桥杯 航班时间
c++ 蓝桥杯 航班时间原创 2022-06-06 22:11:52 · 92 阅读 · 0 评论 -
蓝桥杯 回文日期 c++
回文日期 蓝桥杯原创 2022-06-05 23:02:23 · 633 阅读 · 0 评论 -
第九届蓝桥杯省赛 递增三元组
蓝桥杯 递增三元组 前缀和原创 2022-06-05 18:26:07 · 79 阅读 · 0 评论 -
蓝桥杯 1227.分巧克力
儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 N块巧克力,其中第 ii 块是 Hi×Wi 的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:形状是正方形,边长是整数 大小相同例如一块 6×5 的巧克力可以切出 6 块 2×2的巧克力或者 2 块 3×3的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?输入格式第一行包含两个整数 N原创 2022-05-23 23:09:31 · 80 阅读 · 0 评论 -
蓝桥杯 1208.翻硬币
小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作。输入格式两行等长的字符串,分别表示初始状态和要达到的目标状态。输出格式一个整数,表示最原创 2022-05-23 17:37:42 · 78 阅读 · 0 评论 -
蓝桥杯 2018国赛c++A组 求三角形面积
因为运气进了国赛,接下来继续备战蓝桥#include<iostream>#include<cstring>#include<algorithm>using namespace std;//向量的叉积求三角形的面积,(已知三点坐标)#define x first#define y secondtypedef pair<double,double> pdd;double cross(double x1,double y1,doubl原创 2022-04-29 16:33:17 · 982 阅读 · 0 评论 -
蓝桥杯 倍数问题
暴力破解,只得一点分吧,我也没有优化,不过看到有的题解将问题转化为取余,然后优化了。在此,用背包dp求解更好#include<bits/stdc++.h>using namespace std;//可以转化为01背包问题,即在i个数中找出j个数的最优解//可以记一个小技巧,将倍数问题从余数思考//一般状态表示的时候,把限制放到维数里面,一般有几个限制,就用几维的状态表示。const int N=1010;vector<int>a[N];//用vector数组,这原创 2022-04-06 23:05:30 · 285 阅读 · 0 评论 -
蓝桥杯 大臣的旅费
#include<bits/stdc++.h>//本文求树的直径,目前还未学习树的dp,所以用两遍dfs'using namespace std;//先从任意一点P出发,找离它最远的点Q,再从点Q出发,//找离它最远的点W,W到Q的距离就是是的直径const int N=1e6+10; //因为为无向图,所以N大些,1e5+10的二倍也可以。int dist[N]; //距离数组,表示每点到首都的距离int idx,e[N],ne[N],h[N],w[N];//用邻接表存储图.原创 2022-04-06 17:50:21 · 71 阅读 · 0 评论 -
蓝桥杯 全球变暖
跟之前写得bfs就是多些思考,什么时候岛屿消失,什么时候形成岛屿#include<bits/stdc++.h>using namespace std;const int N=1010;#define x first#define y secondchar g[N][N];bool st[N][N];int cnt; //表示最终淹没的岛屿数int n;typedef pair<int,int>PII;int dx[4]={-1,0,1,0},dy[4]=原创 2022-04-05 23:46:52 · 85 阅读 · 0 评论 -
蓝桥杯 交换瓶子
按照acwing 可以找规律,但目前初学者的我,只会暴力。那个买不到的数字这道题也是有规律加油,一定会越来越好的#include<bits/stdc++.h> //因为我是在一个做题网站上,它题目要求测试多组数据using namespace std; //所以我设成while(cin>>n),真题好像就要求测一组即可const int N=1e4+10;int a[N];bool st[N];int n;int main(){ while原创 2022-04-04 22:45:33 · 222 阅读 · 0 评论 -
蓝桥杯 日志统计 最全注释
双指针算法#include<bits/stdc++.h>using namespace std;const int N=1e5+10; //本题用的为双指针算法。将o(n2)时间度优化为o(n);int cnt[N]; //记录ID帖子的得赞数bool st[N]; //记录编号id的帖子是否是热帖typedef pair<int,int> PII; //pair 默认是以first排序的,本题即以时间排序#define x first //便于下文书写。原创 2022-04-04 15:10:55 · 78 阅读 · 0 评论 -
蓝桥杯 左右兄弟
每一颗树的最大高度为高度最大的子树加上该子树的深度。因为只有根节点为0;#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int idx,e[N],ne[N],h[N];int n;int cnt[N];int f[N]; //表示以u为根节点的最大高度void add(int a,int b){ e[idx]=b;ne[idx]=h[a];h[a]=idx++;}void dfs(int原创 2022-04-03 22:41:34 · 51 阅读 · 0 评论 -
蓝桥杯 第几个幸运树
害,一开始是想写一个check函数分解质因数判断一个数是否满足条件,再从1到目标数枚举求出最后的次数如下,结果可想而知。时间复杂度太大,而且好像也运行不了。#include<bits/stdc++.h>using namespace std;int cnt;typedef long long LL;const LL ans=59084709587505;bool check(LL a){ for(int i=2;i<=a/i;i++) {原创 2022-04-02 21:25:37 · 220 阅读 · 0 评论 -
蓝桥杯 回路计数
跟acwing那道状态压缩题差不多。这道题让自己确实明白了f[1][0]的含义。以后做类似题,要注意下标表示,否则很容易出错。#include<iostream>using namespace std;const int N = 21, M = 1 << N;long long f[M][N];bool st[N][N];long long res;int gcd(int a, int b){ return b ? gcd(b, a % b) : a;}原创 2022-04-01 20:52:09 · 418 阅读 · 0 评论