【比赛日志】2020.11.12联赛模拟Day2

20191112-Day2-联测

考试时间:8:00~11:30。

[problem 11-12 down .pdf](problem 11-12 down .pdf)

半个小时,想出来了,第一题的假做法,第二题40分,第三题60分……

想完&写完所有思路了……9:43。

10:30开始调试:

  • 10:54对拍好T1。
  • 11:13对拍好T2。
  • 11:25对拍好T3。

game

game.cpp check.cpp brute.cpp

二分答案+贪心(打tag/队列维护)操作?

注意:一定要选择k个怪物!

9:00-9:21:写完&调试完。(没有对拍)

  • 注意二分的最小值为\(1\)而不是\(0\)……出现被\(0\)除的错误了……

90分。错误:没有考虑\(k=0\)时的情况。 订正:game_.cpp

friend

friend.cpp check.cpp brute.cpp

随便最短路即可40!

预处理去掉一个节点以后\(1,n\)的单源最短路即可60!

……但是还是不知道怎么处理出去掉一个节点后的所有最短路??

奇怪的\(O(n^3\log n)\)做法

似乎可以用分治(类似整体二分)的方法把预处理优化到\(O(n^3\log n)\)??

【数据删除】

综上,复杂度是\(O((r-l+1)n^2)\)的,故总体复杂度是\(O(n^3\log n)\)。


100分。

revenge

revenge.cpp check.cpp brute.cpp

\(n\)次dfs即可60!brute.cpp

尝试一次\(dfs\)+压位dp……似乎可以到\(O(2^cn)\)?

以\(1\)为根,设\(f_{u,s}\)表示考虑\(u\)的子树内以\(u\)为端点的路径,经过的所有颜色为\(s\)的超集时,最少经过的节点数,则:

【数据删除】

大约在10:30调完。


100分。

posted @ 2021-06-17 21:13  frank3215  阅读(46)  评论(0)    收藏  举报