WC2023(授课与讨论7)

Fabulous Fungus Frenzy

将过程逆序,\(1\)操作不变,\(2\)操作即将与模板矩阵匹配的子矩形变为通配符

借助\(1\)操作,在合适的顺序下,可以在\(n+m\)次操作内修改一个位置

在此基础上,不断找到一个"可操作"的模板矩阵,并调整后操作

(这里"可操作"是指可以构造出一个能匹配且不全为通配符的子矩形)

关于操作次数,这里分为四类:

  • 每次\(2\)操作至少增加一个通配符,因此至多\(nm\)\(2\)操作

  • 每个模板矩阵第一次操作时,至多\(knm(n+m)\)\(1\)操作

  • 之后每次在第一次的位置上操作,注意到上一次操作后已经全是通配符

    换言之,此时每次交换均对应于某个位置变为通配符,至多\(nm(n+m)\)\(1\)操作

  • 得到最终的矩阵后,若无法匹配则无解,否则至多\(nm(n+m)\)\(1\)操作

综上,\(1\)操作总次数最多为\(2\times 20^{4}+4\times 20^{3}=352000\)


Neue Spiel

参考这里


Topology

咕咕咕


Drawing

咕咕咕


Hoof and Brain

考虑以下两种情况:

  • 对于出度为\(0\)的点,后手不能移动到该点,不妨删除

  • 对于出度为\(1\)的点,后手移动到该点后,下次只能移动对应出边

    不妨合并两点,用线段树合并维护边集,并需去掉重边

重复上述过程,若最终\(x\)\(y\)被删除或两者在同一点上,显然先手必胜

同时,若不为上述情况,每个点出度均\(\ge 2\),显然后手必胜

换言之,该条件充分必要,时间复杂度为\(O(n+q+m\log m)\)


放学路

参考这里

posted @ 2023-02-04 17:51  PYWBKTDA  阅读(146)  评论(0编辑  收藏  举报