2019.3.17 CSP认证

1. 这个没什么疑问吧,就是弄了几个坑。

2. 表达式求值,调度场算法。这个十分水啊,格式都规定了,四个一位数+三个四则运算符。调度场可以,暴力遍历也可以,想怎么来怎么来。

3. CSP传统模拟,上来先长篇题目恐惧,所以语文(读题能力)是第一生产力。

4. 以往一般都是最短路/欧拉/最小生成树,这次不一样了,改暴力遍历了,很神奇,不过也算比上次那个裸的最小生成树要好一些。

5. 重点来了,这道题还是很有意思的,对n个源点,求每个源点前K短路。

说到K短路,我们会想到A*或者可持续化堆+dijkstra。

那么说到前K短路,我们自然会想到最短路树。

可是最短路树只能求单源鸭,咋办?暴力n颗最短路树铁定要超时鸭。

由于本人过于菜鸡,暂时都没想象到好的算法,目前给出一些我个人觉得可能可行的(我太菜了QAQ)

1.最短路树+剪枝转移,这个其实感觉不太靠谱,因为剪枝过程我想了一下是能被卡炸的(当然也可能是我想不出怎么剪),大概就是把最短路树在源点间转换,把固定了的最短路径的d记录下来直接转移,而对于可能需要修改点(路径)的重新求一遍最短路。重新求的过程复杂度并没有特比高,因为题目限制了m的数量级同n为1e4,重新求的部分占比相当少。

2.用JOHNSON算法。JOHNSON是多源最短路的典型算法,当然也是通过最短路树实现的,这个过程大概在8次方数量级,8次方以后通过记录的最短路数组求出前K短路。(这个算法wanafly camp讲过,具体可以直接去看录播)

以上内容纯属口胡,求路过的巨巨别鄙视我QAQ

你可能感兴趣的:(CSP口胡)