20201004

考场

看完3题感觉没有一道会做的。。。

仔细看了看T2发现是原题就没有管。

T1数学题,感觉是找规律,\(O(n)\)\(O(1)\) 。推了30min没找到,开始嚼着口香糖打dfs,结果打挂了。上个厕所冷静一下,发现没有判“翻转”情况,加上后就好了。题目中有一句“\(nm\le 32\)”,以为是少打了的“,”,于是挂着“32 32”开始打T2,发现太卡(内存使用率超过\(90%\))就关了。

T2一遍过样例。

T3完全不会,连环都不会找(只会双指针找链上单环)。yy了半天想到Floyd找最小环,同时维护点/边数。

最后40min打完,让T3维护的点/边数开始对拍,重新开始找T1的规律。lgh说手推的答案错了一个。。。

最后10min发现 \(n\le 3\)时像二阶等差,结果后面就没了。T2也没有再看,有点虚。T3大概拍了1w组大数据,没什么问题,随便交了一个。

考后发现lgh和hkh都找了T1的规律,但不完全。T2的确是原题。T3全部爆0。

A. 连珠风暴

考场

dfs每个位置的颜色,hash+map判重。

期望

\(O(n^{m+1})\)

60pts

实际

100pts (真的是 \(nm\le 32\)

题解

找规律。

B. 道路修建

期望&实际

\(O(n+m)\)

100pts

考场&题解

tarjan缩边双,找新图中度为1的点的个数记为leaf,答案为 \(\lceil \frac{leaf}{2}\rceil\)

缩点后新图为一棵树,将叶子节点贪心地两两连边,整图就变为边双连通分量(任意两个新点都有两天路径:经LCA和经叶节点)

C. 最小圈

考场

不会做。

魔改了Floyd求最小环,转移最短路时统计边/点数,枚举环求最小值。

期望

\(O(n^3)\)

20pts

实际

0

题面说保留6位小数,结果数据保留了8位(没有spj)。改成8位后20pts。但实际上这个算法有问题:找环时不能用最短路。

题解

0/1分数规划

简化题意

给定有向图,求一个边权平均值最小的环。

做法

二分答案mid,将所有边权减去mid,若存在负环(dfs判)则合法。

证明

所有边权减去mid即平均边权减mid,若存在负环则说明该环的平均边权\(\le mid\),即 \(ans\le mid\)

总结

  • 前两题没有挂分
  • T1应该让暴力输出解,人工判重无误后打表找规律
  • T3没有想清楚(反正本来也不会)
  • eps不要取太大(慢),比ans位数多2即可。
posted @ 2021-05-02 16:41  401rk8  阅读(62)  评论(0编辑  收藏  举报