Menci

眉眼如初,岁月如故

在那无法确定的未来
只愿真心如现在一般清澈


  1. 「APIO2013」TOLL - 搜索 + 最小生成树

    幸福国度可以用 NN 个城镇(用 11NN 编号)构成的集合来描述,这些城镇最开始由 MM 条双向道路(用 11MM 编号)连接。城镇 11 是中央城镇。保证一个人从城镇 11 出发,经过这些道路,可以到达其他的任何一个城市。这些道路都是收费道路,道路 ii 的使用者必须向道路的主人支付 cic_i 分钱的费用。已知所有的这些 cic_i 是互不相等的。最近有 KK 条新道路建成,这些道路都属于亿万富豪 Mr. Greedy。

    Mr. Greedy 可以决定每条新道路的费用(费用可以相同),并且他必须在明天宣布这些费用。

    两周以后,幸福国度将举办一个盛况空前的嘉年华!大量的参与者将沿着这些道路游行并前往中央城镇。共计 pjp_j 个参与者将从城镇 jj 出发前往中央城镇。这些人只会沿着一个选出的道路集合前行,并且这些选出的道路将在这件事的前一天公布。根据一个古老的习俗,这些道路将由幸福国度中最有钱的人选出,也就是 Mr. Greedy。同样根据这个习俗,Mr. Greedy 选出的这个道路集合必须使所有选出道路的费用之和最小,并且仍要保证任何人可以从城镇 jj 前往城镇 11 (因此,这些选出的道路来自将费用作为相应边边权的 “最小生成树”)。如果有多个这样的道路集合,Mr. Greedy 可以选其中的任何一个,只要满足费用和是最小的。

    Mr. Greedy 很明确地知道,他从 KK 条新道路中获得的收入不只是与费用有关。一条道路的收入等于所有经过这条路的人的花费之和。更准确地讲,如果 pp 个人经过道路 ii,道路 ii 产生的收入为乘积 cipc_i \cdot p。注意 Mr. Greedy 只能从新道路收取费用,因为原来的道路都不属于他。

    Mr. Greedy 有一个阴谋。他计划通过操纵费用和道路的选择来最大化他的收入。他希望指定每条新道路的费用(将在明天公布),并且选择嘉年华用的道路(将在嘉年华的前一天公布),使得他在 KK 条新道路的收入最大。注意 Mr. Greedy 仍然需要遵循选出花费之和最小的道路集合的习俗。

    你是一个记者,你想揭露他的计划。为了做成这件事,你必须先写一个程序来确定 Mr. Greedy 可以通过他的阴谋获取多少收入。

    于  APIO, BZOJ, UOJ, 搜索, 最小生成树 继续阅读

  2. 「APIO2014」Split the sequence - 斜率优化 DP

    你正在玩一个关于长度为 n n 的非负整数序列的游戏。这个游戏中你需要把序列分成 k+1 k + 1 个非空的块。为了得到 k+1 k + 1 块,你需要重复下面的操作 k k 次:

    1. 选择一个有超过一个元素的块(初始时你只有一块,即整个序列)
    2. 选择两个相邻元素把这个块从中间分开,得到两个非空的块。

    每次操作后你将获得那两个新产生的块的元素和的乘积的分数。你想要最大化最后的总得分。

    于  APIO, BZOJ, DP, UOJ 继续阅读

  3. 「CTSC2012」Cheat - SAM + 二分 + 单调队列 DP

    给出 m m 个串组成的「标准作文库」。对于任意一个串,如果它的长度不少于 L L 且在标准作文库中出现过,则它是「熟悉」的。对于任意一个串,如果能将它划分为若干个串,使「熟悉」的串的长度超过总长度的 90% 90\% ,则称这个串是「熟悉的文章」,定义 L0 L_0 为使这个串成为「熟悉的文章」的最大的 L L 。给出若干个串,求每个串的 L L 值。

    于  BZOJ, CTSC, DP, SAM, 二分, 单调队列, 字符串 继续阅读

  4. 「BZOJ 2555」SubString - SAM + LCT

    1. 在当前字符串的后面插入一个字符串;
    2. 询问字符串 s s 在当前字符串中出现了几次?(作为连续子串)

    于  BZOJ, Link-Cut Tree, SAM, 字符串, 数据结构 继续阅读

  5. 「TJOI2015」弦论 - SAM

    对于一个给定长度为 n n 的字符串,求它的字典序第 k k 小的子串。

    于  BZOJ, SAM, TJOI 继续阅读

  6. 「BZOJ 1396」识别子串 - SAM + 线段树

    对于一个字符串 S S ,和 S S 中的第 i i 个字符 x x ,定义子串 T=S(ij) T = S(i \ldots j) 为一个关于 x x 的识别子串,当且仅当:

    1. ixj i \leq x \leq j
    2. T T S S 中只出现一次。

    S S 关于每一位字符的最短识别子串长度。

    于  BZOJ, SAM, 李超树, 线段树 继续阅读

  7. 「SDOI2010」古代猪文 - 费马小定理 + Lucas + CRT

    远古时期猪王国有 n n 个文字,现有的文字数量为远古时期的 1/k 1 / k k k n n 的一个正约数),剩余的 n/k n / k 个文字有很多种情况,假设有 p p 种情况,则研究这些文字的代价为 gp g ^ p ,求这个代价对 999911659 999911659 取模后的结果。

    于  BZOJ, CRT, Lucas 定理, SDOI, 费马小定理 继续阅读

  8. 「SDOI2013」随机数生成器 - 数学 + BSGS

    给定 p p a a b b x1 x_1 ,现有一数列

    求最小的 i i 满足 xi=t x_i = t

    于  BSGS, BZOJ, SDOI, 数学, 数论 继续阅读

  9. 「SDOI2008」Sandy 的卡片 - 差分 + SAM

    相同的定义为:两个子串长度相同且一个串的全部元素加上一个数就会变成另一个串。给 n n 个串,求它们相同的子串最大长度。

    于  BZOJ, SAM, SDOI, 差分 继续阅读

  10. 「BZOJ 3809」Gty 的二逼妹子序列 - 莫队 + 分块

    给一个序列,每次求 [l,r] [l, r] 之间权值在 [a,b] [a, b] 之间的不同的数的数量。

    于  BZOJ, 分块, 莫队 继续阅读