2022.3.4模拟赛总结

时间安排

7.30

开题,哇这T1怎么这么熟悉,这不就很像前两天线段树上维护Kruskal吗,这难道要线段树上维护Tarjan?
那问题就在于怎么高效的维护了,n的范围很小,但我维护线段树肯定是在m上维护的
首先我有两个DAG,要将其合并,那么应该可以用个并查集维护一下连通性?先把点合并,再把边合并
例如两个DAG分别为A,B
A中的1号点,2号点在一个点集中,B中的1号点,3号点在一个点集中
那么合并后1,2,3就都在一个点集中了,这个应该是挺好维护的
然后再枚举每条边?在这个新的点集中重构一下边然后跑个Tarjan
话说我怎么感觉这复杂度还不如我每次跑个Tarjan呢
哦也许不对,一个DAG中的边数最多是多少呢,这应该是是解题的关键
手玩一下试试!貌似是n(n-1)/2个,那么150个点就有11175条边,q次询问每次找logm个区间合并
复杂度为nnq*logm=1e10,拉闸
如果我硬暴力的话,复杂度应该是qm的,和上述所说一个分,自闭
感觉这是我线段树能写出来的最优复杂度了,先过题吧

7.52

开T2,找规律?先放着吧,看看T3可不可写,再选择回来搞T2

7.54

开T3,不想写,回T2了

7.56

60分暴力的吗,有点舒服的呀,搞一下吧
问题来了,我该怎么看每种方案的最长简单路径经过几个点呢,写个dfs?

8.07
最起码拿了50分吧,开始找规律
设f[i][j]表示i个点图经过j个点的方案数
f[i][1]=2^{(i-2)(i-1)/2}
f[i][2]=f[i-1][1]
(i-1)
f[i][2]=2^{(i-2)(i-3)/2}(i-1)
f[i][3]=f[i-1][2]2(i-1)
f[i][3]=2^{(i-3)(i-4)/2}(i-1)*(i-2)
后几项找不出什么类似上面的规律了,但是对其质因数分解,我发现总有一些奇怪的项
当j=4时,对于每个i的方案数中都包含因子38
当j=5时,对于每个i的方案数中都包含因子728
当j=6时,对于每个i的方案数中都包含因子26704
当j=7时,对于每个i的方案数中都包含因子1866256

8.55

n=8的表打出来了,60分到手,再搏一下规律吧
首先在表打出来之前,我按照规律算了前三项,全都是正确的,重点就是研究后面几项了

9.13-9.25

弃掉T2
回T1,还是想不出来该怎么写线段树

9.50

还是没思路,但我突然觉得它是一道我写不出来的莫二离,我感觉线段树搞不出来了(况且它同一场模拟赛怎么会出两道一样的题)

9.52-10.10

开始收烂摊子,把T1T2暴力打一下

10.26

写了T3的n^3 20pts暴力

之后

全程自闭,哪都磕不出来分,感觉第三题后面还能继续写但也搞不出来

期望得分110
实际得分90
T3的暴力挂掉了,还没看原因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值