用户工具

站点工具


2020-2021:teams:hotpot:ctuopencontest2016

这是本文档旧的修订版!


比赛信息

  • 日期:2020.5.9
  • 做题情况:lxh(B),tyx(J{G}),gyp(FI)

题解

B - Hot Air Ballooning

solved by lxh

题意

给出一系列数字,两个数字不同当且仅当出现的数字不同,问一共有多少种不同的数字。

数据范围

给出的数字在整型范围内。

题解

表面上给出的数字范围很大,但我们关心的只有它包含哪些位,用状压的方式压含有哪些位进行hash即可

====D - Rotating Display

unsolved

题意

给定由以下符号$“<”, “>”, “^”, “v”, “o”, “x”, “|”, “-”, “/”, “\”$组成的$n×n$矩阵,给定操作如$“<”, “>”$代表顺/逆时针翻转矩阵,$ “|”, “-”, “/”, “\”$代表沿该方向中轴翻转矩阵,要求输出结果矩阵。

注:$"<"顺时针翻转后为“v”$.

数据范围

$n≤100$ ,操作串$≤1000000$

题解

显然这题类似大模拟,耐心的话我们可以完成翻转等操作的实现,但是由于操作串过长而超时,细心观察后我们可以发现,它这样操作所能得到的矩阵形态时有限的,所以我们可以通过操作串直接计算得到最后的形态并进行变换。

F - Tree Stands

solved by gyp

题意

数据范围

题解

G - Orchard Division

solved by tyx

题意

有一块$M \times M$的田地,其中有$N$棵树,主人现在想卖掉尽可能多的地,但是保留所有树总数的恰好一半。不仅如此,主人想要保留的地必须是一块矩形且包含了整个$M \times M$矩形的至少一个角,问留下的地最小是多少。

数据范围

$M \le 10^9,N \le 10^6$

题解

按照一行的树为单位扫描线即可,少于一半加一行,多于一半减一列,等于一半统计答案。因为要分别判断四个角所以需要做四次。每次先按某一个坐标排序,从小到大或从大到小加,多了就从大往小或者从小往大删,每次维护一个大根堆或小根堆即可。

I - Suspicious Samples

solved by gyp

题意

数据范围

题解

J - Colorful Tribune

solved by tyx

题意

有一个$N \times N$的方阵,每一行和每一列都由$N$个不同的字母组成,现在有一个字母放错了位置,问是哪一个。例如:

ABC
BCA
BAB

中第三行第一个字母应该是C。

数据范围

$3 \le N \le 26$

题解

先从前三行找到两行的字母集合相同,可以用多种方式,我这里用的是一个26位的2进制数,然后开始找不合法的地方。如果一个字母在一行或一列出现两次就不合法,或者一个字母没有出现在我们刚刚找到的字母集合里就不合法。找到后输出即可。

Replay

第一小时:

第二小时:

第三小时:

第四小时:

第五小时:

总结

  • 一定要注意有没有多组数据!
2020-2021/teams/hotpot/ctuopencontest2016.1589099290.txt.gz · 最后更改: 2020/05/10 16:28 由 lotk