4.26模拟赛赛后总结

4.26赛后总结

比赛历程

今天感觉不困了,不过脖子疼,但是这个不影响什么。

AM7:30发下题,仍然遍历题目,简单的把三道题”翻译“了一下然后注释在程序下边,方便一会儿分析。

开始分析T1,一开始以为这个要线性\(O(n)\),之后发现这个m和w非常小,如果能够确定前m个方案,那么后边的数就是一个简单的不定方程问题,之后乘法原理就可以了。

考虑到m和w的范围,应当需要一个\(mw^2\)或者\(m^2w\)的算法,看着这个复杂度,才想到了DP。

\(f[i][j]\)为前\(i\)个数选取的值为\(j\)的方案数,每次转移大概是\(O(sumw\times w)\)的,这样就有 \(m^2w^2\)的算法了!

实现出来大概AM8:30,分析了一下数据兴许已经有70分了,感觉可以在转移上优化,只是一时不知道怎么做,所以先看T2了;

T2是在一个边的序列中求区间最小生成森林,暴力相当可做,\(O(qmlogm)\) 就可以了,数据范围有一个\(c_i\)随着\(i\)递增的部分分

这样直接省去了克鲁斯卡尔的排序过程,不过直接暴力的话还是\(O(qm)\)的,\(1e9\)的级别,所以不能奢望直接暴力。但是想到这个应该可以莫队搞一搞,不过感觉也不大会实现。

再研究一番,发现\(n<=100\) 那生成树最多也就99条边,那应该考虑prim而不是kruskal啊,思考prim怎么写

似乎是贪心的找集合内最小的边,这怎么办,不止要最小值,还可能需要次小值啊?主席树?100颗平衡树?

感觉都不太可写的样子,于是先打了暴力。

T2这一系列过程搞完已经是AM9:30了

T3思考了一番,发现只会bfs,然后写了队列套vector套结构体,然后整体bfs。

60分说是一个完整的矩形,但是没什么思路,这个时候没的多想了,感觉zyz,jyh,ztw人均前两题A了已经开始互相膜了

我就稳稳的拿分好了,,,然后我就只写了个BFS,60分只不过把整体跑bfs改成了4条边跑bfs。

也不知道怎么的,就到了十点半了吧。

开始思考T1的转移的优化,延续一开始想优化的时候,在想怎么把上一层整体的转移到这一层。

胡乱画了一下T1转移的图,终于发现这个转移是一段前缀和(太sb了吧,这么显然的东西),然后开始码,调试。

终于在AM11:00的时候,调过了所有的手造样例,然后要对拍一下了,对拍拍出来有个地方sum没取模,然后就挺对的;

不过这个时候,想测试一下程序把数据跑满能跑多快,嗯不错,0.7s。这个时候我鬼使神差的又点开out文件,感觉怎么这么不对劲呢

突然震惊,我调试没有关,输出了好多行,而对拍的两个文件调试也没有关,所以完全一样。

好在发现了,在11:25的时候确认没有问题,静待提交。

赛后发现

噢神仙翻车了

还好提交快,比同分的高一名,要加分了

zyz本地不对,扣了70,我当了rk1?

然后不计rating了

计不计rating没关系,因为长期保持的rating才是水平的体现,就算这次涨了,如果并不是实力所趋,那一定会再掉的。

计不计rating,JYH都还是RK1 orz

这次比赛也就是比较稳,打的都没挂,不过,确实大家T2都打的有模有样,而我什么都没实现,数据结构问题很大。

T3的60分似乎也不难,如果我提高速度的话或许也有机会想到。

离NOI说长也不长了啊,紧张起来多加练习吧。

简单题解

说起来我连题面都没交代,写啥题解啊。

T1写在了程序后边,不想再写了。

T2 正解是一个线段树区间的归并,感觉很陌生啊。不过大家又是回滚莫队又是线段树合并区间,花式AC,自闭了。

T3 60分考虑二维前缀和然后bfs然后差分。100分是一个奇妙的多项式方向的转化,感觉思路有点雷人,最后需要FFT/NTT解决(战略放弃?)。

posted @ 2021-04-26 22:20  explorerxx  阅读(42)  评论(0编辑  收藏  举报