=====比赛信息===== * **日期:2020.5.9** * **比赛地址:** [[https://www.jisuanke.com/contest/9619?view=rank|传送门]] * **做题情况:lxh(B),tyx(J{G}),gyp(FI)** =====题解===== ====B - Hot Air Ballooning==== ===solved by lxh=== ===题意=== 给出一系列数字,两个数字不同当且仅当出现的数字不同,问一共有多少种不同的数字。 ===数据范围=== 给出的数字在整型范围内。 ===题解=== 表面上给出的数字范围很大,但我们关心的只有它包含哪些位,用状压的方式压含有哪些位进行hash即可 ====D - Rotating Display==== ===upsolved by lxh=== ===题意=== 给定由以下符号$“<”, “>”, “^”, “v”, “o”, “x”, “|”, “-”, “/”, “\backslash”$组成的$n×n$矩阵,给定操作如$“<”, “>”$代表顺/逆时针翻转矩阵,$ “|”, “-”, “/”, “\backslash”$代表沿该方向中轴翻转矩阵,要求输出结果矩阵。 注:$"<"顺时针翻转后为“v”$. ===数据范围=== $n≤100$ ,操作串$≤1000000$ ===题解=== 显然这题类似大模拟,耐心的话我们可以完成翻转等操作的实现,但是由于操作串过长而超时,细心观察后我们可以发现,它这样操作所能得到的矩阵形态时有限的,所以我们可以通过操作串直接计算得到最后的形态并进行变换。 ====F - Tree Stands==== ===solved by gyp=== ===题意=== 一棵树,n个点中选m个,要求不能有孤立点(即每个被选的点旁边还有选中的点)。求方案数。 ===数据范围=== $2\le m\le n\le 200$ ===题解=== dp0[i][j]表示i的子树中选j个,且根节点不选的合法方案数;dp1[i][j]表示i的子树中选j个,根节点选中且子树中有与根连接的点被选中的合法方案数;dp2[i][j]表示i的子树中选j个,根节点选中且子树中无与根连接的点被选中的合法方案数。 递推的时候,对根节点的每个子节点,类似01背包(取max改为加)。最终答案为dp0[1][m]+dp1[1][m]。 时间复杂度:$O(nm^2)$ ====G - Orchard Division==== ===solved by tyx=== ===题意=== 有一块$M \times M$的田地,其中有$N$棵树,主人现在想卖掉尽可能多的地,但是保留所有树总数的**恰好一半**。不仅如此,主人想要保留的地必须是一块矩形且包含了整个$M \times M$矩形的至少一个角,问留下的地最小是多少。 ===数据范围=== $M \le 10^9,N \le 10^6$ ===题解=== 按照一行的树为单位扫描线即可,少于一半加一行,多于一半减一列,等于一半统计答案。因为要分别判断四个角所以需要做四次。每次先按某一个坐标排序,从小到大或从大到小加,多了就从大往小或者从小往大删,每次维护一个大根堆或小根堆即可。复杂度$O(N \log N)$ ====I - Suspicious Samples==== ===solved by gyp=== ===题意=== 给长度为n的序列,每个元素两个参数t(时间),v。保证t严格递增。m次询问,每次问大于/小于,在k以内之前的时间里所有v的最大/最小/平均的元素个数。 ===数据范围=== $n\le 10^5,m\le 10$ ===题解=== 因为数据不大,直接线段树+二分即可。如果数据再大一些,比如n是$10^6$,可以用前缀和+单调队列。 时间复杂度:$O(n\log n m)$或$O(nm)$ ====J - Colorful Tribune==== ===solved by tyx== ===题意=== 有一个$N \times N$的方阵,每一行和每一列都由$N$个不同的字母组成,现在有**一个**字母放错了位置,问是哪一个。例如: ABC BCA BAB 中第三行第一个字母应该是C。 ===数据范围=== $3 \le N \le 26$ ===题解=== 先从前三行找到两行的字母集合相同,可以用多种方式,我这里用的是一个26位的2进制数,然后开始找不合法的地方。如果一个字母在一行或一列出现两次就不合法,或者一个字母没有出现在我们刚刚找到的字母集合里就不合法。找到后输出即可。 =====Replay===== 第一小时:gyp,lxh面对一堆题看中了F。发现F可做,于是gyp开始写F。lxh,tyx开始看B,并想出来了。gyp写F不过样例,让lxh先写B并1a。 第二小时:gyp继续调F,继续不过样例。让lxh先写,写完却发现计蒜客上没有这道题。tyx发现J过的人很多,尝试并迅速通过。 第三小时:gyp继续调F,lxh和tyx想H。gyp终于过了F,lxh和tyx也想出了H。lxh开始写H,tyx看G并想出,tyx与gyp交流G。 第四小时:lxh写H未果。tyx写G但wa。gyp想出I,gyp开始写I。gyp的I一直wa。lxh开始看D并产生思路。 第五小时:lxh开始写D。tyx发现gyp未加多组数据。I通过。tyx的G一直wa。lxh写完D却tle。 赛后,tyx的G交到cf上ac,cf上的标程交到计蒜客上wa。 =====总结===== * 一定要注意有没有多组数据!