确实是垫底了,不过没啥遗憾的,确实那些分数没有拿到手,想的东西确实有差距
有点数学的场次诶
T3 Parking
原题不写了
这题目也真的积累了一个经验吧:遇到原题要当作新题做,一些细节要重新推清楚
T1 party
CF623D
考试的时候尝试了dfs的暴力发现并不是很能做无限的情况
首先解题的主要思想是让每一步结束游戏的概率尽量大
设 (i) 个人被猜了 (c_i) 次,那么结束的概率就是
具体就是如果有一个人没有猜到,那么就没有结束
贪心选择每次能让 (end_{now}) 最大的数猜即可
设 (f[i]=(1-p_i)^{c_i}),那么可以维护 (f_i)
新的 (res) 和原来的值进行相减之后再乘上猜人的总数可以得到当前轮结束的概率
最后加到一起
因为有精度限制,猜 (300000) 次即可
这个 (300000) 的来源?CF题解
其实感觉自己选的话可能是 (10^6)
每次找 (frac{1-f_i imes (1-q_i)}{1-f_i}) 的最大值可以 (O(n)) 或者维护 (priority\_queue) 做到 (O(log n))
T2
这个序列显然是要用矩阵乘法进行递推的
那么每 (n) 个就是一个循环节
修改所在的循环节全部维护一下再乘,用线段树,改完了再改回来
剩下就是细节了
(1.) 注意一次修改对矩阵的影响是两个位置,都要加入进行修改,同时这两个位置可能有 (0) 或者没在一个循环节里面
(2.) 注意最后乘只能做到 (k\%n-1)
特判 (k\%n=0) 的情况
(3.) 因为开了 (O_2) 所以要封装
以后都要记得封装吧
(4.) 如果 ([1 imes 2] imes[2 imes 2]) 的循环展开矩阵乘法,记得先把左侧矩阵两个变量都记录下来
T4 ant
考试的时候并不会写高斯消元,所以少了 (40)
正解考虑主元法
考虑一个 (n imes m) 的所有元都是有相对的关系的
那么把所有的元统计出来,到最侧边,这样就只有 ((n+m-1)) 个
复杂度 (O((n+m-1)^3))
这种做法也适用于 国际象棋
对于高斯消元,我们总结出来以下的优化方式:
(1.) 治疗之雨
矩阵只有一个三角和一列有值,那么把所有的点值表示出来,最后带回去再算一次
(2.) 带状矩阵
留坑
(3.) 主元法
其实并不是题有多难,而是卡原题了,关键是过不了对拍就很慌
这样子浪费了不少时间
以后 (T2) 这种简单分析就能得到答案的题目越来越多了,别被吓到
消元的优化手段确实是又积累了一种
(T1) 这种题算是开个思路吧,其实有一说一,并不是很能被启发出来点啥……