蓝桥杯
Marcus-Bao
这个作者很懒,什么都没留下…
展开
-
知乎求关注啦!同步分享免费文章!
原创 2020-10-15 22:50:26 · 247 阅读 · 0 评论 -
蓝桥杯/nyoj 737 合并石子 区间dp+平行四边形优化
问题描述 在一条直线上有n堆石子,每堆有一定的数量,每次可以将两堆相邻的石子合并,合并后放在两堆的中间位置,合并的费用为两堆石子的总数。求把所有石子合并成一堆的最小花费。输入格式 输入第一行包含一个整数n,表示石子的堆数。 接下来一行,包含n个整数,按顺序给出每堆石子的大小 。输出格式 输出一个整数,表示合并的最小花费。样例输入5原创 2017-02-14 22:27:21 · 1350 阅读 · 0 评论 -
蓝桥杯 国王的烦恼 逆向并查集建树
题目链接思路: 按照题目的要求的话我们有一个特别简单粗暴的做法,那就是对于每次不能用一条边,我们就对剩下的边求一下连通分量,但是m那么大肯定T了,对此我们有一个简单的做法那就是从后往前逆向考虑. 我们将所有的边按照所能使用的天数从大到小排序,然后用并查集维护一下,每判断一条边时就需要判断这两个点是否已经连通,如果连通就说明不需要抱怨,否则就要抱怨.另外注意需要记原创 2017-05-26 23:13:35 · 451 阅读 · 0 评论 -
蓝桥杯 算法训练 乘积最大 dp
题目链接思路: 这个题的话我的做法就是dp[i][j] 表示前i个字符添加j个乘号的最大值,那么可得出如下转移方程:dp[i][j]=max(dp[i][j],dp[w][j-1]+get(w+1,i));这个题的话我感觉应该longlong也存不下,可能因为蓝桥的数据很水所以就过了,java大数的写法后期再补.#include#define Ri(a) scanf原创 2017-04-26 23:04:29 · 1214 阅读 · 0 评论 -
历届真题 大臣的旅费 树的直径
传送门思路:首先需要明确花费最多其实必定是两点距离最长的(可以化为等差数列),又注意到题目中明确说明此图一定有n-1条边,那么就是说该图其实就是一棵树.在一棵树上找距离最长的两点,这就是树的直径,所以这题只要会求树的直径即可. 树的直径的定义: 即在树中找出两个结点,使得这两个结点间的距离最长,这个最长距离称为直径现有结论(证明网上自行搜索),从任意一点u出发搜到的最远的点一定是s、t中的一点,然...原创 2018-03-06 20:39:41 · 336 阅读 · 0 评论 -
历届真题 k倍区间 (前缀和优化计数)
传送门思路: 最简单的方法,先维护一个前缀和,然后O(n^2)枚举两个起点求出区间和判断是否%k == 0 统计个数.N <= 100000,这种方法想的满分是不可能的,但是比赛中不会做骗分也是可取的. 我们来想一下假设区间此时为[i,j],那么区间和可表示为 sum[j] - sum[i-1],所求为 (sum[j] - sum[i-1])%k == 0. 我们可以得到 当sum[j] %...原创 2018-03-06 20:40:58 · 423 阅读 · 0 评论 -
历届真题 包子凑数 完全背包
传送门思路:首先考虑什么情况下是INF,即当所有的包子Ai,都不互质时那么就是INF,否则一定会凑到一定程度时后面的包子全都能凑出。在考虑题目中说所有的包子有无限笼,可以考虑到本题是一个完全背包,每个Ai为物品的体积。观察数据发现N为100,Ai最多为100,那么背包的容量设置为10000大一些即可了,如果不放心可以100000左右,然后统计所有凑不出的即可.#include<bits/st...原创 2018-03-06 20:42:00 · 3489 阅读 · 4 评论 -
历届试题 青蛙跳杯子
传送门思路:观察到数据范围为15,而且青蛙又有三种动作,进而想到这是一个bfs.由于 ‘*’空杯子是唯一的,所以我们每次就从‘*’来考虑青蛙的动作是否可行(即从空杯子来跳到青蛙那里),那么最多只有六种情况。队列中最多有2^15 * 6 个串,复杂度是可以满足的.注意所有字符串只进队一次,所以需要对字符串去重,这个过程用set 或map 记录一下即可。#include<bits/stdc++....原创 2018-03-10 16:35:45 · 674 阅读 · 0 评论 -
蓝桥 A Careful Approach 枚举+贪心+二分
传送门思路:一看到这个题目应该首先想到二分吧,最小问题最大化,最大问题最小化我们就考虑是否具有单调性是否能二分.想完二分之后我们需要考虑如何check, 仅仅是简单的排序 check是不可行的,因为我们不太确定能够按哪个端点来排序一定是正确的.进而观察到题目中说n <= 8。那么我们是否可以暴力枚举出每个飞机降落的顺序,然后在按照贪心的思想,对当前二分的答案,让每个飞机在能降落的情况下尽可能...原创 2018-03-10 16:36:48 · 1016 阅读 · 4 评论 -
计蒜客 藏宝图 (bfs + 状压)
传送门思路:典型的bfs + 状压啊,一个入口出口,还要拿到地图中多个东西,而且同一个点重复走的话不好标记,这时候就标记状态啊/。。md,退役垃圾狗。。。答案 :48 PS: 这里走回出口没必要在跑一遍bfs,只需要走到出口时判断一下是否所有箱子都拿到了即可。#include <bits/stdc++.h>using namespace std;int a[15][1...原创 2018-03-30 21:18:23 · 719 阅读 · 1 评论 -
计蒜客 蓝桥模拟赛 连连看 (dfs)
传送门答案:89思路: 这个直接暴搜就好了,图这么小》#include <bits/stdc++.h>using namespace std;int a[6][6] = { {0,0,0,0,0,0}, {0,1,4,2,5,0}, {0,2,1,2,1,0}, {0,3,1,3,2,0}, {0,2,5,3,4,0}, {0,0,0,0,0,0}};int...原创 2018-03-30 21:20:13 · 383 阅读 · 0 评论 -
计蒜客 合并数字 (思维 + 栈)
传送门思路: 大力vector搞T了一个点。。。。 这个题其实应该注意到是最左面相邻的绝对值相差为1的。那么这里可以用个栈,显然栈里存的都是不满足相邻为差的,对于新来的一个值,由于要满足最左面,栈里又是都不满足的,所以肯定是和栈顶比较是否满足条件了,满足就保留小的继续和栈顶判断,一直到不满足为止。#include <bits/stdc++.h>using name...原创 2018-03-30 21:24:37 · 341 阅读 · 1 评论 -
计蒜客 蒜头君的数轴 (gcd前缀和)
传送门思路: 首先考虑到要满足除了一对点的距离,其余的相邻两点间的距离要相等,那么最后这个距离r一定要是原本相邻点距离的公约数,且一定是最大公约数才最优. n个点n-1个距离,每次去掉一个, 那么如何求每次去掉一个剩下n-2个距离的gcd呢?由于gcd的非递增性质,也就是 a,b,c三个数的gcd = __gcd(__gcd(a,b),c).我们可以正向维护一个lgcd前缀,逆向维护一个...原创 2018-03-30 21:31:24 · 483 阅读 · 0 评论 -
计蒜客 封印之门(思维+Floyd)
传送门思路: 个人感觉是很巧妙的一题啊,总觉得很熟悉但就是差点意思... 首先分析一下bfs是没戏了,每个字母最多26中变换方法(可以自己变成自己),最长1000,26^1000 ,hhh 感觉这题加深了对Floyd的理解吧,由于是小写字母也就是最多有26个城市,我们可以先不去考虑整个字符串,只看把某个字符变为要求的字符需要几步,然后在遍历整个串求出总共需要的步数即可.我们把每一...原创 2018-03-30 21:41:53 · 373 阅读 · 0 评论 -
青出于蓝胜于蓝 (dfs序 + BIT)
传送门思路: 首先一眼dfs序,转化成序列问题来解决这是没有问题的 但是我在如何求徒弟中武功比他高的时候纠结好久。。。其实是我在dfs序中编的号和他给的武功等级让我很混乱了/// 这里就运用了树状数组求逆序对的那种思想,我从武功最高的人开始(等级为1的)先看他徒弟的整个区间内是否为0,为0就代表徒弟武功都没他高,然后在把他对应的编号+1(因为我们是按照武功...原创 2018-03-30 21:51:53 · 311 阅读 · 0 评论 -
2016蓝桥杯省赛C/C++B组7题剪邮票 for循环暴力+bfs判断联通
剪邮票如【图1.jpg】, 有12张连在一起的12生肖的邮票。现在你要从中剪下5张来,要求必须是连着的。(仅仅连接一个角不算相连)比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。请你计算,一共有多少种不同的剪取方法。思路: 没错,一开始我傻到写了个暴搜,天真的以为每个重复了五次,除以5即可...mmp,后来才想起来.... 因为每个位置每次所走的方向不一样也会...原创 2018-03-28 22:34:25 · 663 阅读 · 0 评论 -
蓝桥杯 算法提高 矩阵乘法 区间dp
题目链接思路: 这个题个人感觉是蓝桥的数据水,首先会爆ll吧,而且T。但是都没发生,就一个地方我自己写了min函数就过了确实是一个区间dp,但是我当时写的时候也有点乱,n个矩阵给你n+1个数,那么dp[1][n]就表示从第1个矩阵合并到第n个矩阵的最小花费。我们首先观察给你n+1个数,a[i]为其行数,a[i+1]为其列数,并且对于两个矩阵 p *q q* r 合并 则合并原创 2017-05-25 15:41:24 · 784 阅读 · 0 评论 -
蓝桥杯 最大子阵 dp (类最大连续子段和)
题目链接思路:这个题我觉得还是不错的,当然我是想不到的. 我们这个题可以把它类比成一维的求最大连续子段和的问题, 也就是说对于要求的这个子矩阵,我们可以预处理出来他一列一列的和,然后我们可以O(n^2)枚举矩阵的高,比如i,j那么高为j-i+1,由于我们预处理了列的和,那么对于每一列的和可以看成一个一维的了.就转化成了求最大连续子段和.原创 2017-05-24 13:20:50 · 866 阅读 · 0 评论 -
算法训练 Beaver's Calculator/codeforces 207A1 排序+贪心
问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次。他开发了一种新的计算器,他将此命名为"Beaver's Calculator 1.0"。它非常特别,并且被计划使用在各种各样的科学问题中。 为了测试它,聪明的海狸邀请了n位科学家,编号从1到n。第i位科学家给这个计算器带来了 ki个计算题。第i个科学家带来的问题编号1到n,并且它们必须按照编号一个一个计算,因为对于每个问题的计算都必须依赖...原创 2017-02-07 17:51:47 · 2378 阅读 · 2 评论 -
蓝桥杯训练 表达式计算
算法训练 表达式计算 时间限制:1.0s 内存限制:256.0MB问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值。其中除表示整除。输入格式 输入一行,包含一个表达式。输出格式 输出这个表达式的值。样例输入1-2+3*(4-5)样例输出-4数据规模和约原创 2017-02-01 20:47:14 · 5726 阅读 · 1 评论 -
蓝桥杯 算法训练 最大最小公倍数
算法训练 最大最小公倍数 时间限制:1.0s 内存限制:256.0MB 问题描述已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。输入格式输入一个正整数N。输出格式输出一个整数,表示你找到的最小公倍数。样例输入9样例输出504数据原创 2017-02-06 21:00:34 · 719 阅读 · 0 评论 -
算法训练 操作格子 线段树
问题描述有n个格子,从左到右放成一排,编号为1-n。共有m次操作,有3种操作类型:1.修改一个格子的权值,2.求连续一段格子权值和,3.求连续一段格子的最大值。对于每个2、3操作输出你所求出的结果。输入格式第一行2个整数n,m。接下来一行n个整数表示n个格子的初始权值。接下来m行,每行3个整数p,x,y,p原创 2017-02-08 16:45:18 · 718 阅读 · 0 评论 -
蓝桥杯 历届试题 分糖果 水模拟
问题描述 有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: 每个小朋友都把自己的糖果分一半给左手边的孩子。 一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。 反复进行这个游戏,直到所有小朋友的糖果数都相同为止。 你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。输入格式原创 2017-02-08 23:09:39 · 380 阅读 · 0 评论 -
算法训练 安慰奶牛 最小生成树
问题描述Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路。道路被用来连接N个牧场,牧场被连续地编号为1到N。每一个牧场都是一个奶牛的家。FJ计划除去P条道路中尽可能多的道路,但是还要保持牧场之间 的连通性。你首先要决定那些道路是需要保留的N-1条道路。第j条双向道路连接了牧场Sj和Ej(1 j j <= N; Sj != Ej),而且走完它需要Lj的时间原创 2017-02-20 10:35:25 · 730 阅读 · 0 评论 -
历届试题 小朋友排队 树状数组求逆序对
问题描述 n 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。 每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。 如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换,则他的不高兴程度增加2(即不高兴程度为3),依次类推。当要求某个小朋友第k次交换时,他的不高兴程度增加k。原创 2017-02-11 22:00:30 · 923 阅读 · 0 评论 -
算法训练 最短路 Bellman-Ford
问题描述给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。输入格式第一行两个整数n, m。接下来的m行,每行有三个整数u, v, l,表示u到v有一条长度为l的边。输出格式共n-1行,第i行表示1号点到i+1号点的最短路。样例输入3 31原创 2017-02-21 16:07:13 · 499 阅读 · 0 评论 -
算法训练 未名湖边的烦恼 dp
问题描述 每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)输入格式 两个整数,表示m和原创 2017-02-08 16:37:48 · 689 阅读 · 2 评论 -
基础练习 回形取数 暴力
问题描述 回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入格式 输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。输出格式 输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。样例输入原创 2017-02-22 20:36:32 · 1030 阅读 · 0 评论 -
基础练习 2n皇后问题 dfs
问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。输入格式 输入的第一行为一个整数n,表示棋盘的大小。 接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置原创 2017-02-23 15:54:18 · 1354 阅读 · 1 评论 -
蓝桥杯 基础练习 Sine之舞 暴力
问题描述 最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。 不妨设 An=sin(1–sin(2+sin(3–sin(4+...sin(n))...) Sn=(...(A1+n)A2+n-1)A3+...+2)An+1 FJ想让奶牛们计算Sn原创 2017-02-26 16:37:30 · 1137 阅读 · 0 评论 -
算法训练 和为T dfs
题目链接先吐槽一句,蓝桥杯的测试数据真的是非常水的数据。。。。思路: 这个题因为有这个要求:若有多组解,优先输出不包含第n个整数的;若都包含或都不包含,优先输出不包含第n-1个整数的,依次类推。最后一行输出总方案数。 所以对于这个题 虽然是一个dfs,但是我们找数的时候就要从后往前找,对于每一个数我们都有两种选择,取与不取,所以我们就从后往前dfs时先让最后一个数不取,然后再取原创 2017-03-18 22:16:32 · 903 阅读 · 0 评论 -
蓝桥杯 金明的预算方案 有依赖的背包
题目链接参考:http://www.cnblogs.com/wuyiqi/archive/2011/12/13/2285910.html思路:很明显,这道题也是一个有依赖的背包问题,关键是怎么去求解。这道题在背包九讲中特别提到了.还要注意,附件不再有从属于自己的附件,暗示了这种依赖关系只有一层,没有形成一棵树,是最简单的依赖背包这个问题由NOIP2006金明的预算方原创 2017-05-02 21:55:52 · 598 阅读 · 0 评论 -
蓝桥杯算法训练 P1103 结构体指针or 暴力
算法训练 P1103 时间限制:1.0s 内存限制:256.0MB 编程实现两个复数的运算。设有两个复数 和 ,则他们的运算公式为: 要求:(1)定义一个结构体类型来描述复数。 (2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。 (3)必须使用结构体指针的方法把函数的计算结果返回。 说明:用户输入:运原创 2017-02-07 17:23:55 · 669 阅读 · 0 评论