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

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

[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] (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] (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 焦作赛区网络预赛】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

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

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

2018-10-26 11:44:56

阅读数:26

评论数: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

【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

Codeforces Round #516 (Div. 2) D. Labyrinth ---- BFS+思维

题目传送门 做法: 优先选取列,然后在向左右扩展。 然鹅,有思路,却不会处理,看了本场Rank1,有双端队列巧妙处理列和行的优先级,才发现处理更简洁+易懂。ORZ 我们优先将列放到队首,因为列是不需要消耗步数的,然后再将左右放到队尾,然后依次访问+标记,即可。 AC代码: #include&a...

2018-10-15 12:46:24

阅读数:15

评论数:0

[Codeforces-Gym] (101550C)Card Hand Sorting ---- 状态压缩+思维

题目传送门 题意: 给你一副扑克牌,其中不包括大王和小王,共52张,即4*13 有四种花色分别定义为s,h,d,c 然后扑克牌的数字从2~9 大小定义为依次从小到大,剩下的大小为A>K>Q>J>T&am...

2018-10-09 17:12:02

阅读数:17

评论数:0

[UPC](9517)Princess Principal ---- 并查集+栈+技巧离线查询

题目传送门 做法: 我们发现,满足题意的区间有以下情况: 1.  [   (  )   ] 2.  [   ]  (   ) 3.  (   )  (   ) 学过数据结构的童鞋都知道利用栈实现括号匹配。同理这个题的解法也是离不开的。 我们把满足题意的区间下标加到并查集里面,然后离线...

2018-10-08 17:55:28

阅读数:6

评论数:0

Codeforces Round #329 (Div. 2) A. 2Char ---- 思维+STL

题目传送门 做法:一次性用两个不同的字符去枚举所有串即可,找到最大的 AC代码:跟超霸学的一手好写法( ゚∀゚)     #include<bits/stdc++.h> #define IO ios_base::sync_wit...

2018-09-27 15:27:53

阅读数:17

评论数:0

Codeforces Round #327 (Div. 2) B. Rebranding ---- 思维+STL

题目传送门 做法: 用vector 把每个字母的相应下标保存好,然后swap交换即可  然后自己忘记了swap可以交换容器的迭代器,自己应用结构体写了一个类似vector的东西,来实现交换,结果时间被卡。 一查,发现swap交换迭代器的复杂度非常低,它是直接交换数据所在的内存空间地址,而不...

2018-09-27 15:21:15

阅读数:23

评论数:0

Codeforces Round #464 (Div. 2) C. Convenient For Everybody ----- 思维+前缀和

题目传送门 题意:  注意题目中没有0:00时 以及 s,f 的区间指左闭右开区间[s,f] 即可 做法: 就是找一段长度为 f-s-1的连续区间,使得这段区间的和最大,由于具有时间特性,所以要注意时间成环状的问题,所以我们在处理的时候,加倍处理即可。 比如: 1 2 3 4 1  ----...

2018-09-23 15:38:01

阅读数:21

评论数:0

Codeforces Round #511 (Div. 2) C. Enlarge GCD ---- 思维+素数筛

题目传送门 题意: 让你删除一些数,使得剩余数的gcd尽可能大。 做法: 这里需要用思维想一下(`・ω・´) 我们先求出原来n个数的gcd,我们把每个数除以这个gcd得到的新的n个数他们有什么特征嘞? 对,他们这n个数,没有公因子了,但是两个数之间,三个数之间……都还可能存在它们的公因子...

2018-09-22 22:18:25

阅读数:71

评论数:1

【ACM-ICPC 2018 北京赛区网络预赛】B题Tomb Raider ---- 状态压缩+思维★

题目传送门 题意: 找出这n个串的最长公共子序列,我们把每个串都看成环,子序列可以从环中找出。 其中要保证公共子序列的字典序最小。 比如: abcdef kedajceu 其中他们的公共子序列是 acd  做法: 每个串的长度最多不超过8,最多10组数据,显然我们可以通过状...

2018-09-22 19:53:28

阅读数:146

评论数:0

Codeforces Round #463 (Div. 1 + Div. 2, combined) C. Permutation Cycle ---- 思维+扩展欧几里得

题目传送门 做法: 题目中给的函数式递归定义的,递归终点是j为min时 f(i,j) = i 我们从样例中要规律,发现每个点都有某个确定的周期里面。 比如 6 5 8 3 4 1 9 2 7 6 ----> 1   1-----> 6 周期为2...

2018-09-21 17:13:38

阅读数:24

评论数:0

Educational Codeforces Round 37 (Rated for Div. 2) A. Water The Garden ---- 思维

题目传送门 做法: 枚举每个花床,看看哪个水龙头离他最近,然后找出能保证覆盖所有的水龙头即可。即就是先最小再最大。 AC代码: #include<bits/stdc++.h> #define IO ios_base::sync_...

2018-09-19 17:58:08

阅读数:16

评论数:0

[POJ](2309)BST ---- 树状数组lowbit

题目传送门 做法:其实还是从题目中给的这棵二叉搜索树找规律,我们发现最小的其实就是 x-lowbit(x)+1,即树状数组中x位置所维护的区间的左端点,接机推出最大即x+lowbit(x)-1; AC代码: #include <iostream>...

2018-09-17 19:28:36

阅读数:26

评论数:0

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