1 Yuhan の Blog

尚未进行身份认证

Spring Song

等级
TA的排名 2w+

蓝桥杯 PREV-35 正则问题

题目链接:PREV-35 正则问题思路:题目不解释一下压根不知道x () |这些符号是做什么的…简单解释:x就是代表一个字符,题目要求最长字符数;()就是起到计算中的优先级作用;|代表或,既然取最长我们就需要找到或运算左右最长的字符;举例:1.xxx|xx就是3;2.(xxx)xx是5;3.(xxx|x)xx也是5;知道意思之后使用递归即可求得最长字符串;代码:...

2020-02-28 20:01:40

蓝桥杯 PREV-50 对局匹配(贪心)

题目链接:PREV-50 对局匹配思路:1.我们将分数模kkk相同的放在一组,我们知道只有同一组的人才有可能相互匹配到;2.我们遍历每一组,按公差为kkk的分数顺序将该分数的人数组成一个序列,例如所有分数为[2,2,4,5,3,4,5,1,8][2,2,4,5,3,4,5,1,8][2,2,4,5,3,4,5,1,8],kkk为222,则模kkk为000的一组分数为[2,2,4,4,...

2020-02-27 15:42:16

蓝桥杯 PREV-44 青蛙跳杯子(bfs)

题目链接:PREV-44 青蛙跳杯子思路:我们采用搜索的方式,寻找每一种情况的所有下一种可能情况,并用map标记已经遍历过的情况;像此种类似寻求最短路的搜索用bfs更加高效;代码:#include<bits/stdc++.h>using namespace std;map<string, int> vst;string s, t;queue&...

2020-02-27 13:34:58

蓝桥杯 PREV-39 日期问题

题目链接:PREV-39 日期问题思路:1.将题目所给的三种格式都尝试一下;2.注意排序输出;3.算闰年遵守“四年一闰,百年不闰,四百再闰”的规则(闰年2月29天,平年2月28天);4.注意计算得出的重复日期要删去;代码:#include<bits/stdc++.h>using namespace std;struct date { int y, m...

2020-02-26 16:54:50

蓝桥杯 PREV-37 分巧克力(二分)

题目链接:PREV-37 分巧克力思路:1.我们知道高为hhh,宽为www的矩形最多能分出[hd]+[wd][\frac{h}{d}]+[\frac{w}{d}][dh​]+[dw​]个d∗dd*dd∗d的正方形(其中[ ]为向下取整函数);2.然后二分答案,依次判断是否可行即可;代码:#include<bits/stdc++.h>using namespace...

2020-02-25 15:58:53

蓝桥杯 PREV-31 小朋友排队(树状数组)

题目链接:PREV-31 小朋友排队思路:分析题意不难理解出某个人的移动次数为(排在他前面比他高的人数+排在他后面比他矮的人数);使用树状数组可以高效地计算得到上面两项数据(使用时注意将每个人的身高加1,因为有0身高的存在);每个人的不高兴程度就是ai(ai+1)2\frac{a_i(a_i+1)}{2}2ai​(ai​+1)​,其中aia_iai​代表此人的移动次数;代码:...

2020-02-25 15:36:32

蓝桥杯 PREV-32 分糖果(模拟)

题目链接:PREV-32 分糖果思路:按题意模拟即可代码:#include<bits/stdc++.h>using namespace std;int n, a[105], ans, b[105];inline void run() { for(int i = 0; i < n; i++) { a[i] >>= 1; b[(i +...

2020-02-24 14:09:25

蓝桥杯 PREV-33 兰顿蚂蚁

题目链接:PREV-33 兰顿蚂蚁思路:按照题意模拟即可代码:#include<bits/stdc++.h>using namespace std;bool a[105][105];int m, n, x, y, s, k;int mx[4] = {-1, 0, 1, 0}, my[4] = {0, 1, 0, -1};inline void move(...

2020-02-24 13:19:24

蓝桥杯 PREV-26 最大子阵(二维最大子序列和)

题目链接:PREV-26 最大子阵思路:首先我们需要学会一维最大子序列和(这里就不多赘述啦)此题我们枚举这个子矩阵的上底和下底即原矩阵的两列,对于原矩阵的每一列我们都用前缀和数组记录下来;假设现在枚举第r和第rr列,我们设立数组v(下标从1到m),v[i]的值即为原矩阵a[r][i] + a[r + 1][i] + ... + a[rr][i],此时我们只需求一维数组v的最大子序列...

2020-02-23 16:13:53

蓝桥杯 PREV-27 蚂蚁感冒

题目链接:PREV-27 蚂蚁感冒思路:仔细思考可知我们可以完全忽略碰面掉头这个条件;那么我们只需要统计初始感冒蚂蚁往哪个方向、初始感冒蚂蚁左侧蚂蚁往左往右方向蚂蚁数量、初始感冒蚂蚁右侧往左往右蚂蚁数量即可;代码:#include<bits/stdc++.h>using namespace std;int main() {#ifdef MyTest fr...

2020-02-23 15:01:16

蓝桥杯 PREV-41 Excel地址

题目链接:PREV-41 Excel地址思路:当成进制来理解即可;代码:#include<bits/stdc++.h>using namespace std;int main() {#ifdef MyTest freopen("Sakura.txt", "r", stdin); #endif int n; cin >> n; strin...

2020-02-22 20:40:33

蓝桥杯 PREV-23 数字游戏(等差数列)

题目链接:PREV-23 数字游戏思路:根据题意我们易计算出第i(0≤i<T)i(0\leq i<T)i(0≤i<T)次说出的数字为[1+in(in+1)2]%k[1+\frac{in(in+1)}{2}]\%k[1+2in(in+1)​]%k,我们的目标即让iii逐个遍历,然后求和即可;但是略微分析可知,这个数字在计算的过程中达到102410^{24}1024数量...

2020-02-22 19:32:01

蓝桥杯 PREV-34 矩阵翻硬币(大数)

题目链接:PREV-34 矩阵翻硬币思路:1.由题意可知,将所有硬币都进行一次Q操作后,被翻转奇数次的硬币是反面朝上的;2.定义f(x)f(x)f(x)为正整数xxx的约数个数,那么坐标为(a,b)(a,b)(a,b)的硬币会被翻转f(a)∗f(b)f(a)*f(b)f(a)∗f(b)次,我们知道只有奇数乘以奇数结果才会是奇数,因此当且仅当f(a)f(a)f(a)与f(b)f(b)f...

2020-02-22 14:11:28

蓝桥杯 PREV-49 发现环(链表)

题目链接:PREV-49 发现环思路:1.我们可以采用依次去掉度数为1的点的方法来寻找图中的环;2.遍历的过程中可以采用链表方式,以减少时间开销;代码:#include<bits/stdc++.h>using namespace std;const int maxn = 1e6 + 5;int n, nex[maxn], deg[maxn];vector...

2020-02-20 15:27:36

蓝桥杯 PREV-21 回文数字

题目链接:PREV-21 回文数字思路:dfs出所有情况即可代码:#include<bits/stdc++.h>using namespace std;int n;int a[3], b[3], s;vector<int> v;inline void dfsa(int p) { if(p == 3) { if(s == n) v.pu...

2020-02-20 14:41:31

蓝桥杯 PREV-46 填字母游戏(博弈)

题目链接:PREV-46 填字母游戏思路:此题博弈的思想就是每个人寻找自己每一步的最优解,我们用dfs模拟博弈过程;int dfs()返回某方此步骤的最优解,遍历所有空格,模拟所有可能然后取里面最优的一个作为函数返回值;在游戏结束之前每个人每个步骤填一个空格然后递归地将剩下的局面交给对方;为了减少复杂度我们采用map容器进行记忆化搜索,保存该局面的最优结果;代码:#inclu...

2020-02-19 17:21:59

蓝桥杯 PREV-30 波动数列(0/1背包)

题目链接:PREV-30 波动数列思路:设这个数列首项为AAA,由题意可知总和一定可以表示成nA+xa−yb(x+y=n(n−1)2)nA+xa-yb(x+y=\frac{n(n-1)}{2})nA+xa−yb(x+y=2n(n−1)​)的形式,其中xxx为+a+a+a操作的次数和,yyy为−b-b−b操作的次数和;那么我们有nA=s−xa+yb(x+y=n(n−1)2&0≤...

2020-02-19 15:05:20

蓝桥杯 PREV-47 区间移位(二分+贪心)

题目链接:PREV-47 区间移位思路:1.既然是寻得长度的最优解,那我们二分答案便可;2.对于checkcheckcheck函数,我们自然需要检查当前的二分值是否合乎要求,即在lenlenlen长度内能否将这些线段拼凑好;3.博主首先采用左端点越小优先级越高的贪心方法,只有80分,该思路的问题就是过于想当然,如果是求线段移动总长度之和最小,我们可以采用这种方式;4.我们从左往右...

2020-02-18 22:37:27

蓝桥杯 PREV-15 格子刷油漆(dp)

题目链接:PREV-15 格子刷油漆思路:这个2∗n2*n2∗n的城墙,我们将四个端点和非端点分开考虑;|------------------------------------------------------------------------------------|我们设dp[n]dp[n]dp[n]为:有nnn列时,从某一端点为起点,一共多少种刷漆方法;从端点开始我们...

2020-02-17 16:59:18

蓝桥杯 PREV-12 危险系数

题目链接:PREV-12 危险系数思路:找到两点间的所有路径,结点出现次数和路径条数相等的(即每一条路径都出现的结点)即为关键点;统计这样的结点个数即可;代码:#include<bits/stdc++.h>using namespace std;const int maxn = 1005;int n, m, s, t, cnt, par[maxn], num...

2020-02-17 14:13:16

查看更多

勋章 我的勋章
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。