油条
Xiejiadong edited 4 年,7 月前
为了庆祝 EOJ 月赛题目第一次被大规模 AK ,我们决定为所有 AK 比赛的选手发放奖品。
# | Tag | Idea | Developer | Tester |
---|---|---|---|---|
A | 贪心 文法二义性 | Xiejiadong 10185102223 | 10185102223 | Kilo_5723 yanghong bingoier changtiaoraplanqiu |
B | 数学 模拟 | Once | bingoier | Kilo_5723 yanghong 10185102223 changtiaoraplanqiu |
C | 模拟 二维前缀和 | Once | yanghong | Kilo_5723 10185102223 changtiaoraplanqiu bingoier |
D | 哈希 | Once | Once | Kilo_5723 |
E | 数学 构造 | cs2017 | Xiejiadong | Kilo_5723 |
操作
再结合操作
下面将
考虑到规则的特殊性,下面以字符
由于只有操作
相应地,如果满足上述条件,有生成
也就是说,
下面考虑
在可以打出
综上,只需要在代码中记录每个前缀中的 #
Dead Fang
。Sad Fang
。Happy Fang
。时间复杂度
Xiejiadong : 这个题目是我们《计算理论》课程的期末作业,是上下文无关文法的二义性理论的简单应用。
10185102223 : 由于原主人公是QQ小方,改成了Cuber QQ后忘记修改输出标准了,所以输出的内容看上去牛头不对马嘴。
每道题目都是相对独立的,因此只要对每道选择题的最大可能提交次数取个最大值即可。
分开讨论每一个像素的贡献,可能发现,单个像素可能出现的位置是屏幕上的一个矩形区域。因此,分别统计每一个像素对答案的贡献,使用二维前缀和维护。
时间复杂度
笔者最近在研究 OI 界的东西,所以做了一些考古工作。本题的灵感来源于 1998 年 NOIP 提高组的拼数问题,后来,这道题广泛出现于各种公司面试中,也是贪心必讲的例题。初见这道题会自然猜测,按照数字的字典序排序可以得到最优解,然而当出现一个数字是另一个数字的前缀时,可以很容易构造出反例。例如
这道题的经典做法是排序法,若
取两个前缀
由于
时间复杂度
需要将所有的约数按照一定的排列,使得相邻的两个数只相差一个质因子。
倘若我们用广义
用这样编码的好处是,我们要求“相邻的两个数只相差一个质因子”,也就是在两个数的编码中有且仅有其中的某一位相差
这样构造的思路,我们可以从格雷码中学到一些经验,用类似格雷码的方式构造就可以得到一个合法的解了。
比赛阶段所有代码,均已公开。