这是本文档旧的修订版!
给出一系列数字,两个数字不同当且仅当出现的数字不同,问一共有多少种不同的数字。
给出的数字在整型范围内。
表面上给出的数字范围很大,但我们关心的只有它包含哪些位,用状压的方式压含有哪些位进行hash即可
====D - Rotating Display
给定由以下符号$“<”, “>”, “^”, “v”, “o”, “x”, “|”, “-”, “/”, “\\”$组成的$n×n$矩阵
有一块$M \times M$的田地,其中有$N$棵树,主人现在想卖掉尽可能多的地,但是保留所有树总数的恰好一半。不仅如此,主人想要保留的地必须是一块矩形且包含了整个$M \times M$矩形的至少一个角,问留下的地最小是多少。
$M \le 10^9,N \le 10^6$
按照一行的树为单位扫描线即可,少于一半加一行,多于一半减一列,等于一半统计答案。因为要分别判断四个角所以需要做四次。每次先按某一个坐标排序,从小到大或从大到小加,多了就从大往小或者从小往大删,每次维护一个大根堆或小根堆即可。
有一个$N \times N$的方阵,每一行和每一列都由$N$个不同的字母组成,现在有一个字母放错了位置,问是哪一个。例如:
ABC BCA BAB
中第三行第一个字母应该是C。
$3 \le N \le 26$
先从前三行找到两行的字母集合相同,可以用多种方式,我这里用的是一个26位的2进制数,然后开始找不合法的地方。如果一个字母在一行或一列出现两次就不合法,或者一个字母没有出现在我们刚刚找到的字母集合里就不合法。找到后输出即可。
第一小时:
第二小时:
第三小时:
第四小时:
第五小时: