CF 681

我太水了......

这是一场奇差无比的CF。

A,看题意有困难,实际上还是很水的。

B,枚举 1234567 和 123456 的个数,时间复杂度1e6以下

C,业界毒瘤模拟题。最TM坑的是还要输出操作数...不能在线输出。

首先,我一个数组名写错了,结果搞了至少10min才调出来,可能有20min。

然后我空间开小了...

然后我没有判断队列是否非空就取队首...

最后我一个大于号小于号写错了...

最后终于A了,还有26min。

弃疗。

D,给你一些人,构成一个森林。自己算自己的祖先。

给定一个序列,每个人在这个序列里扫描,遇到第一个自己的祖先就给他送礼物。

i 希望把礼物送给 ai。求一个这样的序列能满足所有人的需求,或输出 -1。

保证ai是i的祖先。

n <= 100 000

我的想法是对于每一个ai,其他的所有作为aj的i祖先都在ai之后。然后拓扑排序即可。

n²不可承受。

然后考虑从1开始依次加入ai。

对于每个ai,如果在队中就看ai前有没有i的祖先。

不在队中就扫描,在队中找到第一个i的祖先然后把ai插入它前面。然后往后检查......

显然是错的。

问了某大佬,正解:

考虑一对父子:

若儿子y已得到满足,且ay != y

那么ay为父亲x的祖先,那么ax == ay,否则不合法。

若ay == y,则对x无影响。

所以对于已满足的x

ay == ax 或 ay == y,否则不合法。

然后扫一遍即可。

输出:只需输出ai == i的点即可。

posted @ 2018-07-08 17:32  huyufeifei  阅读(1044)  评论(0编辑  收藏  举报
试着放一个广告栏(虽然没有一分钱广告费)

『Flyable Heart 応援中!』 HHG 高苗京铃 闪十PSS 双六 電動伝奇堂 章鱼罐头制作组 はきか 祝姬 星降夜