2022.10.16 ZRnoip10连day5

1.时间安排

8:30~9:30

先看了一下4题,T1是简单题,T2计数DP,T3数位DP,T4数据结构。

直接开T1,先打了暴力 \(n^2\)

感觉这东西没法优化,应该是性质。一开始以为只要左右两边有相同质因子就有解,后来到9点开T2的时候突然发现假了,构了组数据果然错了。

思考另一种方式,枚举所有质因子,把含有这个质因子的数拿出来,相邻的连一条边,跑dfs,搜到n个点就是有解。

大样例没问题,随机数据对拍也没问题。

(但其实是假的,虽然过了原题数据)。

9:30~10:30

推T2DP,一开始没考虑同一行或一列有限制时会影响其他的,DP假了。

然后就先从最暴力的DP开始想,设置 \(dp[i][j]\) 表示前i个左括号已经匹配的j个的方案,方案是能DP出来,但是不会计算答案。

设计了好久计算答案的方程,都不对,已经1h左右了,先挑了。

10:30~11:00

把T3的20分暴力写了。

11:00~11:30

把T4的20分暴力写了。

11:30~11:50

把T3n=1的数位DP写了,加上前面一共30分。

11:50~13:00

回头来发现是自己智障错误循环变量打错导致T2答案不对,\(n^5\) 暴力没问题。

优化的时候想可以左括号右括号独立计算贡献,最后再拼起来,就可以 \(n^3\) DP。

很遗憾,到最后都没调出来大样例,系数配的有问题。

result:

T1:100(97) T2:30 T3:30 T4:30

2.简要题解

T1:

实际上直接用个栈或者并查集维护就好,当前的能和栈顶合并就合并,合并后暴力检查栈顶能不能和栈里下一个元素合并,因为总合并不超过n-1次,复杂度正确。

T2:

思路正确,因为系数问题没调出来,赛后调出来过了。

T3:

组合数转成多项式再数位DP,还不会。

T4:

根号分治+树套树,还不会。

3.反思

1 .犯了致命的循环变量打错的低级错误,导致有30min时间浪费在查正确代码的错上,来不及调试正解。

2 .T1想太多了,这种简单题往往不需要特别复杂的算法,就像之前的某场T1只需要加起来再排序。

posted @ 2022-10-16 17:13  Displace  阅读(42)  评论(0)    收藏  举报