蓝桥杯
aozil_yang
这个作者很懒,什么都没留下…
展开
-
蓝桥杯 历届试题 九宫重排 (八数码问题--康托展开去重 + bfs搜索)
题意:简单的八数码问题:给你两个状态 求最少步数。可以把点变成9:这样,9个数都不一样,相当于是阶乘的排列。直接用bfs 搜索 康托展开去重即可。#include #include #include #include #include #include #include #include #define Siz(x) (int)x.size()#defi原创 2017-04-20 20:45:13 · 1635 阅读 · 2 评论 -
蓝桥杯 历届试题 网络寻路 (dfs)
题意:统计一棵树上有多少路 只走三次, 起点和终点可以相同,中间的不可以相同。思路:直接暴力枚举起点,dfs即可。#include #include #include #include #include #include #include #include #define Siz(x) (int)x.size()//#define get(x) (3.141592原创 2017-04-20 21:22:26 · 793 阅读 · 1 评论 -
蓝桥杯 历届试题 大臣的旅费 (树的直径 BFS)
题意:给你一棵树,求树上最长距离。思路:也就是求树的直径两遍bfs即可, 第一次从任意一个点开始bfs, 找出最长距离, 并记录点在哪(记为s),那么s 一定是树直径上的一个端点。在从s bfs一遍即可。原理: 设起点为u,第一次BFS找到的终点v一定是树的直径的一个端点证明:1) 如果u 是直径上的点,则v显然是直径的终点(因为如果v不是的话,则必定存在另一个点w原创 2017-05-15 20:46:56 · 469 阅读 · 0 评论 -
蓝桥杯 历届试题 带分数 (暴力枚举)
题意:求n的带分数的种类,使得1~9各出现一次。思路:直接暴力枚举即可先o(n) 枚举 前面的整数, 在枚举后面的分数, 后面分数 加前面的整数 位数和超过9 个就剪枝了#include #include #include using namespace std;typedef long long LL;LL gcd(LL a, LL b){ return原创 2017-05-16 17:17:27 · 1019 阅读 · 0 评论 -
蓝桥杯 历届试题 剪格子 (dfs回溯)
题意:把一个矩形格子分成两部分, 使得两部分和最小, 并且包含左上角的区域格子数最少?思路:一开始想的非常麻烦, 题意理解有些出入, 想去状态压缩去了, 想的非常麻烦。但这个题目 数据量很小。直接回溯就好了。从左上角格子开始, 不断的dfs搜索, 当前和为总和一半时 直接更新答案。#include #include #include using namespace原创 2017-05-16 20:08:09 · 528 阅读 · 0 评论