![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝桥杯
文章平均质量分 57
千亚夫
这个作者很懒,什么都没留下…
展开
-
13年蓝桥杯 翻硬币
贪心法 先将字符串转换为布尔数组01然后从第一个开始比较,如果不同就翻相邻的两个硬币并计数+1 直到结束,一定是最少翻的 #include<iostream>#include<cstdio>#include<cstring> char str1[1005];char str2[1005];int ans1[1005];int ans2[1005];...原创 2018-03-20 21:20:26 · 293 阅读 · 0 评论 -
16蓝桥杯 一步之遥
明明用扩欧甚至穷举都可以一下出结果,我却搜索了半天。。。#include<iostream>#include<cstdio>using namespace std;void ex_gcd(int a,int b,int& d,int& x,int& y){ if(!b){ d=a;x=1;y=0; } else{ ex_gcd(...原创 2018-04-22 20:59:00 · 252 阅读 · 0 评论 -
16蓝桥杯决赛 凑平方数
用全排列直接搜索,可行的结果放到set里面判重,注意一下用long long就行了。#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>#include<cstring>#include<set>#include<cstdli...原创 2018-04-22 19:59:01 · 210 阅读 · 0 评论 -
17蓝桥杯决赛 发现环
无向图找环。用dfs来搜索环,两个参数,dfs(x,y),x表示当前点的位置,y表示前驱位置然后搜除了前驱位置的点(也就是不回走,将有向图转为无向图),每走一个点给布尔数组赋1,直到搜到重复的点,说明发现了环。值得注意的时, 搜完有两种情况,起点在环上,起点不在环上。当起点不在环上,再用一个dfs将起点与环节点(除了record)中间的所有布尔数组赋0。最后输出布尔数组就好了。 #include&...原创 2018-04-11 20:28:16 · 1057 阅读 · 1 评论 -
17蓝桥杯决赛 对局匹配
dp问题先转换为权值数据,把权值数据化为K组(K1,K2……)数据每一组数据相当于k等于1的子问题。 最后将最后k个加起来就是答案。比如说样例21 21 2 2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 6转化为权值数据为1 2 3 4 5 6分成两组1 3 5 k12 4 6 k2k1子问题的答案是1+5=6k2子问题的答案是2+6=8最后问题的答案就是14。#in...原创 2018-04-16 19:22:07 · 370 阅读 · 0 评论 -
17蓝桥杯 包子凑数
扩展欧几里德算法,如果给定n种蒸笼的最大公约数不等于1,那么就有无限多个否则算出不能凑出的数量。dp布尔数组,dp[i]表示i能不能被凑出,能赋值1,不能赋值0。先把初始的蒸笼数全部赋值1,然后从dp[1]开始找,一直到10010(假设边界不超过这个数)。 如果dp[i]不能被凑出,那么直接计数+1如果能凑出,那么将dp[i]的i加上n个蒸笼的数赋值1,也就是将dp[ans[0]]~dp[ans[...原创 2018-03-26 20:37:20 · 110 阅读 · 0 评论 -
14蓝桥杯 蚂蚁感冒
贪心法先将所有蚂蚁位置按绝对值排序,并记录第一只蚂蚁所在的位置(数组中的位置) 两只蚂蚁碰面后方向调换,其实和不调换一样,题目只是计数,并没有要求记录哪些蚂蚁感冒了所以,有两种情况。 情况1,第一只感冒蚂蚁朝向的那方没有一只与它方向相反的蚂蚁,输出1。 情况2,有的话,将感冒蚂蚁朝向那方所有与它方向相反的蚂蚁计数,并且将感冒蚂蚁背后与它同向的蚂蚁也计数。 将上述两种情况,左右方向各写一次,便可求出...原创 2018-03-22 08:54:46 · 95 阅读 · 0 评论 -
13蓝桥杯 连号区间
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int ans[100010];int n,Count=0;int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",...原创 2018-03-21 20:43:53 · 123 阅读 · 0 评论 -
蓝桥杯 买不到的数目
动态规划,当可以被凑出来的数的连续个数等于最小的那个a时,之后所有的数都可以被凑出。与凑包子那题一样。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int ans[100000];int a,b;int ...原创 2018-03-31 21:16:01 · 397 阅读 · 2 评论 -
蓝桥杯 剪格子
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int ans[15][15];int ok[15][15];int Min=100000;int Count=0;int n,m;int sum=0;...原创 2018-03-31 20:42:52 · 111 阅读 · 0 评论 -
17蓝桥杯 方格分割
这题搜边更好做,从4,4点开始搜,每走一步中心对称的那个也标记走过,直到走到边界,最后结果除以4#include<iostream>#include<cstdio>#include<cstring> int ans[10][10];int Count=0;void dfs(int x,int y){ ans[x][y]=1;//标记已走 ans[...原创 2018-03-31 17:52:59 · 148 阅读 · 0 评论 -
17蓝桥杯 迷宫
直接dfs,走到边界就+1把字母转换为数字 输入方便#include<iostream>#include<cstdio>#include<cstring>using namespace std;int ans[20][20];int ok[20][20];int Count=0;void dfs(int x,int y){ ok[x][y]=0...原创 2018-03-31 15:30:36 · 176 阅读 · 0 评论 -
13蓝桥杯 带分数
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int ans[9]={1,2,3,4,5,6,7,8,9};//把所有排列弄出来 int Count=0;int main(){ int n; scanf("%d",&n); do{ ...原创 2018-03-21 19:57:44 · 112 阅读 · 0 评论 -
17蓝桥杯 分巧克力
//二分答案 #include<iostream>#include<cstdio>#include<algorithm>using namespace std;int n,k,l,r,ans;struct cho{ int x,y;};cho c[100010];int judge(int x){ int tot=0;//表示以x为边长的巧...原创 2018-03-25 21:18:09 · 88 阅读 · 0 评论 -
17蓝桥杯 日期问题
我的做法是,先把三种表示法都写出来,再判断合不合法,用然后放入set集合里面去重排序,另外闰年的29号合法,需要另外判断 ,合法就输出,注意如果两种表示法表示的一样,只输出一个,比如02/02/29,只输出2029-02-02。#include<iostream>#include<cstdio>#include<cstring>#include<al...原创 2018-03-25 20:53:45 · 126 阅读 · 0 评论 -
16蓝桥杯剪邮票
先用全排列选出5张邮票,然后再判断是不是连通图就好了。 dfs和bfs都可以做 #include<iostream>#include<cstdio>#include<algorithm>#include<queue>#include<cstring>using namespace std;int ans[12]={0,0,0,...原创 2018-03-30 20:31:19 · 118 阅读 · 0 评论 -
14蓝桥杯 地宫取宝
使用一个四维数组来进行记忆化dfsx,y表示坐标,z表示当前已拿物品,Max表示当前拿到的最大价值物品那么ok[x][y][z][Max]表示 在点(x,y)处拿了z个物品最大价值为Max这个状态 到 点(n,m)处拿了k物品 这个状态有多少条走法。其中在初始位置拿的最大价值应该是-1,因为后面会有0价值的物品。判出递归边界有两个情况。情况1:不拿最后一个物品就已经有k个物品了情况2:可以拿最后一...原创 2018-03-24 19:38:35 · 107 阅读 · 0 评论 -
17蓝桥杯决赛 磁砖样式
用dfs搜索回溯模拟铺砖块,按从左到右,从上到下铺,n表示铺第几块砖,然后取模转化为x,y表示坐标。 初始化-1,用1,0分别表示一种颜色,每个点要不铺1,要不铺0(必须铺砖的两个点都为-1),不能铺返回上个点,铺过了的直接到下一个点 最后判重(也可以在铺的时候判断,花的时间更少,因为是填空题就算了)答案105760 刚开始想,初始化0,用1表示一种颜色,每个点可以横铺1,竖铺1,或者不铺三种情况...原创 2018-04-18 20:32:58 · 258 阅读 · 0 评论