- 博客(15)
- 收藏
- 关注
原创 2017蓝桥杯 包子凑数 BFS 数学
问题描述 小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。每种蒸笼都有非常多笼,可以认为是无限笼。 每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有X个包子。比如一共有3种蒸笼,分别能放3、4和5个包子。当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的...
2019-02-27 08:47:22 144
原创 HDU - 2612 Find a way 两次BFS
HDU - 2612 Find a way 题意: 输出 Y 和 M 到 KFC 最短时间总和。 思路: 两次 BFS 时间相加,最小的那个即为答案。除了 '#' 不能走,其余的都可以走且每走一步就需要 11 minutes。 #include<iostream> #include<cstdio> #include<cstring> #includ...
2019-02-26 22:20:44 140
原创 POJ - 3984 迷宫问题 BFS+记录并输出最短路径
POJ - 3984 迷宫问题 思路: 重点是如何记录并输出最短路径。我们可以用一个 node类型的 pre[ ][ ] 二维数组记录这个状态的前一个状态。如果是正向搜索(从(0,0)到(4,4)),找到结果时需要逆序输出;如果是逆向搜索(从(4,4)到(0,0))找到结果直接输出。 逆向搜索(时间少) #include<iostream> #include<cstd...
2019-02-25 21:58:29 610
原创 HDU - 1495 非常可乐 BFS
HDU - 1495 非常可乐 思路: 可以相互倒可乐,所以有6中方式。将每一种方式列举出来就行。但是判断是否均分时需要让容量小的杯子中没有可乐,即可乐瓶中的可乐 和 容量大的杯子中的可乐体积相同。 #include<iostream> #include<cstdio> #include<cstring> #include<queue> #i...
2019-02-24 16:56:03 130
原创 POJ - 3414 Pots BFS + 记录并输出路径
POJ - 3414 Pots 题意: 给你两个杯子的容量 和 最后杯子中剩余水的容量。有三种操作方式 FILL(i) 将第 i 个杯子装满水 DROP(i) 将第 i 个杯子的水倒空 POUR(i,j) 将第 i 个杯子中的水倒入第 j 个杯子中 可能有两种情况:(1) i 杯子中的水还没全倒入 j 杯子中 j 杯子就满了,此时 i 杯子中还...
2019-02-24 09:47:18 208
原创 Codeforces Round #540 (Div. 3) B. Tanya and Candies 思维
http://codeforces.com/contest/1118/problem/B 题意: 有n颗糖,每颗糖都有一个质量,拿出其中一颗糖,剩下的糖的奇数位置上的质量和 和 偶数位置上的质量和相等的有多少个 思路: 对于拿掉第i位数的话,第i位之前的奇偶性是不变的,第i位之后的奇偶性是和原来相反的,所以我们用前缀和,分别求出奇数位置上的前缀和和偶数位置上的前缀和,然后对于第i位拿掉了以...
2019-02-20 21:36:27 160
原创 POJ - 1088 滑雪 DFS+优化
POJ - 1088 滑雪 思路: 在深搜的同时,将每个点的最长长度保存下来,下次访问到这里直接使用就行,否则会超时。 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; typedef long lon...
2019-02-11 11:49:59 187
原创 HDU - 4763 Theme Section nxt数组应用 前中后含有最长相同字符数
HDU - 4763 Theme Section 题意: 给你一个字符串,可以看作“EAEBE”,A和B可以是任意字符或字符串(可以为空),求E的最大长度。 思路: 先求出 nxt 数组,如果存在符合题目要求的 EAEBE 形式,假设 nxt[len]=i,则存在x在下标为 [2*i,len-i) 的字符串当中使得 nxt[x]==i 。 这样求的是无重叠的最大长度 #include...
2019-02-08 20:58:14 107
原创 HDU - 3294 Girls' research Manacher算法 子串的起点终点公式
HDU - 3294 Girls' research 题意: 给定一个字母,这个字母对应着真正的 a ,将字符串变为他所对应的字符串,求出这个字符串的最长回文串的起点和终点,并输出这个回文串 思路: 最长子串的长度是半径减1,起始位置是中间位置减去半径再除以2。 Manacher算法+公式,新串中的位置 i ,对应原始串的( (i-len[i])/2 , (i+len[i])/2-2 ...
2019-02-06 19:36:28 218
原创 HDU - 4513 吉哥系列故事――完美队形II Manacher 算法
HDU - 4513 吉哥系列故事――完美队形II 思路: 本题与求最长回文串的题一样,只是多加了一个条件 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn=100010;...
2019-02-05 21:57:03 147
原创 hdu 3613 Best Reward manacher算法
hdu 3613 Best Reward 题意: 给你26个字母的价值 和 一个字符串,将字符串分成两份,是回文串的那一份的价值是这份串所有字母价值的和,不是回文串的那份价值为0,输出最大价值 思路: 用manacher算法求出回文串的长度 和 枚举切割每一个点,检查得到的两个子串是否是回文串,再求出字符串的前缀和。 最后遍历一遍,将每一个切割点所对应的价值求出,输出最大值 输入的字...
2019-02-05 19:39:26 192
原创 Manacher 模板 求字符串中的最长回文串的长度
求输入的每一个字符串中的最长回文串的长度 1032 : 最长回文子串 最长子串的长度是半径减1,起始位置是中间位置减去半径再除以2。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef lo...
2019-02-04 14:46:36 140
原创 POJ - 3746 Teacher YYF 思维 STL
POJ - 3746 Teacher YYF 题意: 给你n个词 和 m条句子。根据题目给定的语法判断句子是否有错误。 思路: 用map将单词与句子一步步转换 参考博客:https://blog.csdn.net/wl16wzl/article/details/79245191 题目中的介词短语为 介词+名词或代词 ,但是在提交时介次短语中介词与名词的中间需要加上一个冠词 才对。...
2019-02-02 21:51:24 477
原创 HDU - 2609 How many 最小表示法应用
HDU - 2609 How many 题意: 给你n串项链(字符串可以左移),判断有多少种不同的项链 思路: 最小表示法+set 如果这些长度相同的字符串通过旋转后相同,则他们的最小表示法一定相同,最后set的大小即为不同的串数。 substr是C++语言函数,主要功能是复制子字符串,要求从指定位置开始,并具有指定的长度。如果没有指定长度_Count或_Count+_Off超出了源字...
2019-02-01 20:53:52 208
原创 Codeforces Round #536 (Div. 2) B. Lunar New Year and Food Ordering 简单模拟题
B. Lunar New Year and Food Ordering 题意: 第一行输入n,m。餐馆一共有n种菜,会有m个顾客前来点菜。 第二行是每种菜的数量,第三行是每种菜(一道菜)的成本。 从第四行开始有m行,每一行输入两个数(x y) 分别表示第几道菜 和 需要几道这样的菜。如果顾客所点的这道菜没有那么多,就从所有菜中价格最便宜的补(补的菜的价格是菜原来的价格),如果有多种价格...
2019-02-01 17:57:48 390
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人