2017-Sp323-team2

从 Trac 迁移的文章

这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。

原文章内容如下:

== 流水账 ==
=== chenjb ===
=== oipotato ===

=== subconscious  ===

== 题解 == 

 * A:AC自动机求出每个位置作为后缀的最长串,之后随意扫一扫即可。

 * B:从小到大枚举边权,问题转化为加边删边维护连通性,离线即可。

 * C:long long压下来,每次找最高的一个0是怎么变成1的,爆搜。

 * D:四种可能,盘子落地,狗追上的时候盘子高度符合,盘子高度符合的时候狗追上,狗一上来就跳。

 * E:每次根节点对应集合当中最左下的点,然后每棵子树按极角序顺序分配,最后连根到子树根的边即可。

 * F:

 * G:暴力维护并查集,用线段树取出区间内还没有被修改过的点,集合保证复杂度。

 * H:预处理后斯坦纳树。

 * I:暴力枚举所有解。

 * J:dp,做四次。

 * K:

 * L:当A=B或者M=min(A,B)时是公平的,sg值为x%(m+1),否则当A>B的时候A一定赢,因为即使sg值为0,也可以取走一个m+1且不改变sg值;反之如果sg=0则B必赢,不然当且仅当A可以通过一次操作把局面变成sg=0且没有人超过M。

流水账

chenjb

oipotato

subconscious

题解

  • A:AC自动机求出每个位置作为后缀的最长串,之后随意扫一扫即可。
  • B:从小到大枚举边权,问题转化为加边删边维护连通性,离线即可。
  • C:long long压下来,每次找最高的一个0是怎么变成1的,爆搜。
  • D:四种可能,盘子落地,狗追上的时候盘子高度符合,盘子高度符合的时候狗追上,狗一上来就跳。
  • E:每次根节点对应集合当中最左下的点,然后每棵子树按极角序顺序分配,最后连根到子树根的边即可。
  • F:
  • G:暴力维护并查集,用线段树取出区间内还没有被修改过的点,集合保证复杂度。
  • H:预处理后斯坦纳树。
  • I:暴力枚举所有解。
  • J:dp,做四次。
  • K:
  • L:当A=B或者M=min(A,B)时是公平的,sg值为x%(m+1),否则当A>B的时候A一定赢,因为即使sg值为0,也可以取走一个m+1且不改变sg值;反之如果sg=0则B必赢,不然当且仅当A可以通过一次操作把局面变成sg=0且没有人超过M。