嚯嚯嚯!补题!
补题: 5题/12题
- 欧拉函数
- 莫比乌斯反演
- LCA
- RMQ
- ST
- 分块
- 矩阵快速幂
- IO外挂
A. Age of Moyu
记录每个点当前的最小花费是由哪几种情况转移而来,跑一边迪杰斯特拉就可以了;题解是用set存的,而我这里直接在结构体里多了一个变量
|
|
B. AraBellaC
TLE了
回宿舍,唔,发现下标按顺序的,不用check所有的值,计算每一个的mod len
的答案了;直接二分就可以了
题解说的是ST表,不过没想懂mod值不一样,每次都会变化,怎么RMQ呢?
先上一份二分的吧!
|
|
写完后,现在明白了,我这里找最值是通过每一个循环节中,然后二分答案;而ST表,先预处理区间[l,r]
的最值问题,之后,通过固定len枚举每一个循环节,我们可以知道他的左右端点,即可得到这个循环节中的最值了!
代码显而易见,就是把k里东西换成即可
|
|
ST函数,RMQ函数都是模版的东西,就不放上来了!
E. GuGuFishtion
首先那个函数是欧拉函数哦!
欧拉函数是小于n的正整数中与n互质的数的数目
所以就是枚举k,使得a,b的最大公因数是k,计算个数
所以右边的就是bzoj 1101
按取值分段分别处理,一个段内的和,可以用预处理出的莫比乌斯函数前缀和求出
|
|
H. Traffic Network inNumazu【不会
看题解的话,首先要知道LCA,这个东西
所以,先来补一波知识点吧!
LCA: least common acestors最近公共祖先;
我们可以考虑几种情况
通过染色来说明,这个我是看CSDN
每当一个结点由灰转黑的时候,就将它所在的集合合并到其父亲结点所在的集合中去。这样无论什么时候,任意一个黑色结点所在集合的代表元素就是这个结点向上的第一个灰色结点。
看完了图,应该可以理解离线算法(即这棵树是不会变的),假若一棵树存在动态更新,此时离线算法就显得有点力不从心了,但是在其他情况下,离线算法往往效率更高。
这里的Trajan算法的模拟过程可以看CSDN;
找了一道裸题,而且只有一个查询的水题练手:
POJ 1330
写了两段代码,但是思路都是一样的!
|
|
当然,网上的板子挺多的,调顺手的用!
但是,在这道题目中,我们的边的值会变,这很可能使我们的数的形状也在改变;所以我们需要看一下在线的方法!
唔……所以这道题目,今天估计都不会了!
在线的方法,我则看了ST算法!
然后,他又说是基于RMQ算法的,然后我又不会!天呐!我会啥呀,不知道之前都在干什么?发呆!
摘录一下,重点:【dp】
dp[i][j]
表示从第i
位开始,到第i + 2^j -1
位的最大值或者最小值。
把它分成两部分,第一部分从i
到i + 2 ^( j-1 ) - 1
第二部分从 i + 2 ^( j-1 )
到 i + 2^j - 1
转移方程:
mm [ i ][ j ] = max ( mm [ i ][ j - 1 ] , mm [ i + ( 1 << ( j - 1 ) ) ][ j - 1 ] );
查询时,对于任意一个区间 l -- r
,我们同样可以得到区间差值len = (r - l + 1)
。
那么我们这一用小于2^k<=len
的k
把区间分成可以交叉的两部分l
到 l+2^(k)- 1
, 到 r -(1<<k)+1
到r
的两部分。
然后我就开始做POJ 3264了
好啦!终于可以进入正题了,开始学习在线算法了!
ST算法是用来求解给定区间RMQ的最值;包含离线预处理(nlogn)和在线查询(o(1));运用DP思想,求解区间最值;所以对于多组查询的时候,我们需要用ST算法。
I. Tree【未完成
dfs+分块
于是学了分块,bzoj 1086【无法验证正确与否的题目;
然而还是不会做!
TLE啦!!!!!!啊!!!!!!!!!!
【待补!!!!
J. Sequence
分块+矩阵快速幂
被二维矩阵思维禁锢了,应该开成三维的
|
|
然后注意,在用矩阵运算时,每次都会申请一段新的空间,并且对其初始化,这样会导致时间剧增,因此,空间合适就好
同时,能用int就int,long long运算也会很慢的
|
|
K. Swordsman
IO好可怕!不知道有没有简单点的外挂!
然后,就是fread不可以自己直接式,要打开文件呐!
对于 k 种防御属性,分开进行从小到大排序,设立 k 个指针从最小处开始往最大处移动,对满足被杀死的条件的属性进行标记,当某只 monster 的所有防御属性都被标记时,更新剑士的魔法属性同时更新指针往后移动。时间复杂度 O(kn log n)
|
|
碎碎念
2018.08.14 午
嗝!吃多了!
然后发现自己变懒了!脚上不知道长了什么东西,红了!
难道是我我要长高了吗?姑且这么安慰自己了!
转载请注明出处,谢谢。
愿 我是你的小太阳