WangMeow --- ᶘ ᵒᴥᵒᶅ ฅ^•ﻌ•^ฅ

欲穷算法千里目,更上编程一层楼!

排序:
默认
按更新时间
按访问量
RSS订阅

[51Nod] (1247) 可能的路径 ---- 思维+欧几里得

题目传送门 思路: 求解的时候,往扩展gcd的方向去了QAQ,WA 3 放弃 看到一个巨巨的神之推导。 (a+b,b) ,(a-b,b),(a,a-b),(a,a+b) 这四个方向都可以推到(a,b)。(证明可逆) 例如: (a,a-b) -> (a-(a-b),a-b) ...

2018-11-28 18:00:50

阅读数:7

评论数:0

[51Nod] (1163) 最高的奖励 ---- 贪心+优先级队列

题目传送门 思路: 一步步剖析。 先看题目给的数据: 7 4 20 2 60 4 70 3 40 1 30 4 50 6 10 做任务的顺序应该是(4,70) —> (2,60) —> (3,40) —> (4,50) —&...

2018-11-26 21:02:54

阅读数:8

评论数:0

[51Nod] (1102) 面积最大的矩形 ---- 单调栈(思维)

题目传送门 思路: 自己的想法跟题解一样,也是从左右两边找到最远能扩展的位置。但这样复杂度一定是O(n^2) 显然会超时,于是自己发现除了这个思路没有好办法了,于是去学习一波新技能√ ---- 单调栈! 单调栈其实精湛的不是用栈去实现,而是一种思维,用这种单调的思维去降低复杂度。 以这个题为例,...

2018-11-18 17:12:43

阅读数:18

评论数:0

[51Nod] (1097) 拼成最小的数 ---- 排序+思维

题目传送门 思路: 把数看成字符串,数a和数b,ab与ba比较大小即可。 这里巧妙的地方就是借助了STL,cmp函数 return a+b<b+a;即可 QAQ AC代码: #include<bits/stdc++.h&amp...

2018-11-16 16:51:18

阅读数:12

评论数:0

[51Nod] (1417) 天堂里的游戏 ---- 博弈+概率

题目传送门 思路: 1.我们知道noder必败,因为题意中说道noder知道自己必输。 2.无论noder怎样出牌,女士采取的出牌策略使得他在任何情况下的期望一致。 3.由题意中给出的样例解释。我们可以这样推: 设女士出正面n次,反面m次。即游戏进行n+m轮 若noder一直出正面,那么node...

2018-11-15 17:33:04

阅读数:36

评论数:0

[51Nod] (1279) 扔盘子 ---- 贪心+思维(逆向)

题目传送门 思路: 试图藐视平台数据,正向思维模拟,暴力无果_(:з」∠)_ 。 需要复杂度更低的做法~ 如果盘子能落到井的位置pos,那么pos之前的井口的宽度一定>=pos位置的井口的宽度。 所以贪心的思想,我们可以把井口自底向上维护成一个不下降的序列。 然后我们逆向思...

2018-11-14 21:12:55

阅读数:38

评论数:0

[51Nod] (1521) 一维战舰 ---- 思维+二分

题目传送门 思路: 看了一大会儿没有思路,这类区间问题确实很需要想象力!QAQ 我发现这类算法题,我不由自主地给它做加法,从而导致思维混乱(痛苦阴影 其实这类题目,要给它做减法。 我们每查询一个编号所对应的方格,一定控制着某段区间,这段区间必被视为不可用。 如果它不合法,一定是因为它在所有情况下...

2018-11-14 18:11:23

阅读数:34

评论数:0

【ACM-ICPC 2018 沈阳赛区网络预赛】B. Call of Accepted ----中缀表达式计算

题目传送门 题意: 给你一个表达式由+,-,*,d,( ),组成。运算符左边的元素>=0,右边的元素>=1 其中d的运算规则是,比如3d6,指3次掷6面体骰子,出现的数值为[1,6]。 现在让你求表达式的最大和最小 做法: 经典的中缀表达式转后缀表...

2018-10-29 21:05:35

阅读数:16

评论数:0

【ACM-ICPC 2018 沈阳赛区网络预赛】I.Lattice's basics in digital electronics ---- 字典树

题目传送门 做法: 用字典树存好译码词,然后模拟即可 AC代码: #include <bits/stdc++.h> using namespace std; #define IO ios_base::sync_with_stdio(0...

2018-10-28 11:56:18

阅读数:32

评论数:0

【ACM-ICPC 2018 焦作赛区网络预赛】L. Poor God Water ---- 矩阵快速幂 or 杜教BM算法

题目传送门 做法: 我们设(肉,鱼,巧) —> (0,1,2) f(i,j,k) i表示第i小时,j表示当前状态,k表示上一状态 j,k ∈\in∈ (0,1,2) 从n = 3 开始,我们利用后两项推前一项可得 f(i,0,0)=f(i−1,0,1)...

2018-10-26 22:19:26

阅读数:17

评论数:0

【ACM-ICPC 2018 沈阳赛区网络预赛】D. Made In Heaven ---- 第K短路(A*算法)

题目传送门 做法: A*算法(最佳搜索算法,基于启发式)(人工智能课上也学习了) 讲解: 求图的第K短路(A*算法与最短路的应用) A* && 第k短路详解 (详尽) 存个板子~ AC代码: 基于邻接表 #include &...

2018-10-26 17:00:56

阅读数:38

评论数:0

[牛客]牛客国庆集训派对Day2 F.平衡二叉树 ---- 递推 or 记忆化搜索

题目传送门 做法: 其实一开始推东西,推的太细了反而里通解越来越远~ _(:з」∠)_ 首先要满足最优解,我们可以把最大的左子树看成满二叉树,然后去想右子树是怎么构造的即可。这棵右子树,它的左右子树必定满足结点之差<=d,且左右之差为d的时候最优,那么递归定义其左子树...

2018-10-26 11:44:56

阅读数:26

评论数:0

[HDU] (3874) Necklace ---- 离线操作+树状数组

题目传送门 几乎完全一样的题目(区间内不同数的个数): 传送门 题意: 给你n个数,q次查询,问这个区间内,区间内数的和为多少,每个不同的数只能取一次。 做法: 莫队也可做,但是了解到树状数组也可以进行离线操作。 思路就是,记录相同数字中上一个数字出现的位置。 按照查询区间的右端点排序,从小到大...

2018-10-25 16:04:27

阅读数:18

评论数:0

[SPOJ] (1812) Longest Common Substring II ---- SAM(多个串的最长公共子串)

题目传送门 做法: 类似求两个串的最长公共子串。 我们对第一个串建立自动机,然后把剩余的n-1个串放进自动机上匹配。 每个串都保存它们在每个状态上的匹配的最大长度ml, 然后对于每个状态,维护一个数组mn[p],表示当前串在此状态的LCS。对于每个状态我们要取mn[p]中的最小值。然后答案就是所...

2018-10-24 15:44:28

阅读数:22

评论数:0

[SPOJ] (1812) Longest Common Substring ---- SAM(最长公共子串)

题目传送门 做法: 后缀家族的基本应用,之前学习了后缀数组的解法,后缀自动机的思想如下: 给第一个串建立自动机,第二个串在自动机上匹配,通过tran数组,如果匹配就len+1, 否则通过slink数组(fa)向前跳,直到能继续匹配。 AC代码: #include<bits...

2018-10-23 15:38:13

阅读数:23

评论数:0

【ACM-ICPC 2018 南京现场赛 】 J.Prime Game ---- 思维+素数筛

题目: 做法: 计算出来每个数的质因子在各个区间的贡献。 以第二组样例为例: 第一个元素的素因子2: 它能贡献的区间有[1,1],[1,2],……,[1,10] 10个区间 第一个元素的素因子3: 它能贡献的区间有[1,1],[1,2],……,[1,10] 10个区间 当前sum = 1...

2018-10-22 17:47:45

阅读数:161

评论数:0

[UVALive](7908)World Cup ---- 枚举子集(暴力)

题目传送门 做法: 模拟赛时6重循环暴力过了,但是听了听超霸的三进制枚举子集,感觉有些意思,就写了写,其中中间代码比较糙,没有优化,无脑写的。 AC代码: #include<bits/stdc++.h> using namespace s...

2018-10-22 17:14:36

阅读数:20

评论数:0

Codeforces Round #517 (Div. 2) B.Curiosity Has No Limits ---- DFS

题目传送门 做法: DFS搜索即可,想构造写炸了…… AC代码: #include<bits/stdc++.h> using namespace std; #define IO ios_base::sync_with_stdio(0)...

2018-10-22 10:38:47

阅读数:9

评论数:0

【ACM-ICPC 2018 青岛赛区网络预赛】H. Traveling on the Axis ---- 前缀和+规律

题目传送门 做法: 我们很容易推出,对于每一个位置到终点,先判断起始位置是1or0,是1初始化为1,是0初始化为0 从当前位置往后相邻两项如果不一样,那么+1,如果一样+2 举个例子: 1 0 1 1位置: 1 1+1 1+1+1 2位置:    2    2+1 3位置:    ...

2018-10-19 21:22:13

阅读数:22

评论数:0

【ACM-ICPC 2018 焦作赛区网络预赛】H. String and Times ---- 后缀自动机

题目传送门 做法: 计算出每个状态下的endpos,通过endpos在区间内统计maxlen[st] - minlen[st]+1 即 maxlen[st] - minlen[st]+1 = l[st] - l[slink[st]]; 模板题 AC代码: #include&lt...

2018-10-19 12:24:40

阅读数:21

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭