「网络流24题」最长递增子序列 - 网络流

给定正整数序列 x1xn x_1 \sim x_n ,以下递增子序列均为非严格递增。

  1. 计算其最长递增子序列的长度 s s
  2. 计算从给定的序列中最多可取出多少个长度为 s s 的递增子序列。
  3. 如果允许在取出的序列中多次使用 x1 x_1 xn x_n ,则从给定序列中最多可取出多少个长度为 s s 的递增子序列。

「网络流24题」最小路径覆盖

给定有向图 G=(V,E) G = (V, E) 。设 P P G G 的一个简单路(顶点不相交)的集合。如果 V V 中每个顶点恰好在 P P 的一条路上,则称 P P G G 的一个路径覆盖。P P 中路径可以从 V V 的任何一个顶点开始,长度也是任意的,特别地,可以为 0 0 G G 的最小路径覆盖是 G G 的所含路径条数最少的路径覆盖。

设计一个有效算法求一个有向无环图 G G 的最小路径覆盖。

「网络流24题」太空飞行计划 - 最大权闭合子图

W 教授正在为国家航天中心计划一系列的太空飞行。每次太空飞行可进行一系列商业性实验而获取利润。现已确定了一个可供选择的实验集合 E={E1,E2,,Em} E = \{ E_1, E_2, \cdots, E_m \} ,和进行这些实验需要使用的全部仪器的集合 I={I1,I2,,In} I = \{ I_1, I_2, \cdots, I_n \} 。实验 Ej E_j 需要用到的仪器是 I I 的子集 RjI R_j \subseteq I

配置仪器 Ik I_k 的费用为 ck c_k 美元。实验 Ej E_j 的赞助商已同意为该实验结果支付 pj p_j 美元。W 教授的任务是找出一个有效算法,确定在一次太空飞行中要进行哪些实验并因此而配置哪些仪器才能使太空飞行的净收益最大。这里净收益是指进行实验所获得的全部收入与配置仪器的全部费用的差额。

对于给定的实验和仪器配置情况,编程找出净收益最大的试验计划。

「CQOI 2015」任务查询系统 - 可持久化权值线段树

给定若干个任务 (si,ei,pi) (s_i, e_i, p_i) ,表示该任务从第 si s_i 秒运行到第 ei e_i 秒,它的价值为 pi p_i ,每次询问给定一个 x x 并由你计算一个 k k ,查询第 x x 秒时价值最小的 k k 个任务的价值之和,如果第 x x 秒时运行的任务不足 k k 个,则输出此时所有任务的价值和。

「HDU5900」QSC and Master - 区间DP

给定 n n 个二元组,每个二元组由键和值构成,当且仅当相邻的两个二元组的键互质的时候,它们可以被消去,这时得到的价值为它们值的和,然后两边的元素链接在一起。

求能够获得的最大价值。

愤怒的小鸟 - 状态压缩,BFS,NOIP2016

Kiana最近沉迷于一款神奇的游戏无法自拔。

简单来说,这款游戏是在一个平面上进行的。

有一架弹弓位于 (0,0) (0, 0) 处,每次Kiana可以用它向第一象限发射一只小鸟,小鸟们的飞行轨迹均为形如 y=ax2+bx y = ax ^ 2 + bx 的曲线,其中 a a b b 是Kiana指定的参数,且必须满足 a<0 a < 0

当小鸟落回地面(即 x x 轴)时,它就会瞬间消失。

在游戏的某个关卡里,平面的第一象限中有 n n 只绿色的猪,其中第 i i 只猪所在的坐标为 (xi,yi) (x_i, y_i)

如果某只小鸟的飞行轨迹经过了(xi,yi) (x_i, y_i) ,那么第 i i 只猪就会被消灭掉,同时小鸟将会沿着原先的轨迹继续飞行;

如果一只小鸟的飞行轨迹没有经过(xi,yi) (x_i, y_i) ,那么这只小鸟飞行的全过程就不会对第 i i 只猪产生任何影响。

例如,若两只猪分别位于 (1,3) (1, 3) (3,3) (3, 3) ,Kiana可以选择发射一只飞行轨迹为 y=x2+4x y = -x ^ 2 + 4x 的小鸟,这样两只猪就会被这只小鸟一起消灭。

而这个游戏的目的,就是通过发射小鸟消灭所有的猪。

这款神奇游戏的每个关卡对来说都很难,所以Kiana还输入了一些神秘的指令,使得自己能更轻松地完成这个游戏。这些指令将在「输入格式」中详述。

假设这款游戏一共有 T T 个关卡,现在Kiana想知道,对于每一个关卡,至少需要发射多少只小鸟才能消灭所有的猪。由于她不会算,所以希望由你告诉她。

蚯蚓 - 单调队列,NOIP2016

本题中,我们将用符号 c \lfloor c \rfloor 表示对 c c 向下取整,例如:3.0=3.1=3.9=3 \lfloor 3.0 \rfloor = \lfloor 3.1 \rfloor = \lfloor 3.9 \rfloor = 3

蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓。

蛐蛐国里现在共有 n n 只蚯蚓(n n 为正整数)。每只蚯蚓拥有长度,我们设第 i i 只蚯蚓的长度为 ai a_i i=1,2,,n i = 1, 2, \ldots , n ),并保证所有的长度都是非负整数(即:可能存在长度为 0 0 的蚯蚓)。

每一秒,神刀手会在所有的蚯蚓中,准确地找到最长的那一只(如有多个则任选一个)将其切成两半。神刀手切开蚯蚓的位置由常数 p p (是满足 0<p<1 0 < p < 1 的有理数)决定,设这只蚯蚓长度为 x x ,神刀手会将其切成两只长度分别为 px \lfloor px \rfloor xpx x - \lfloor px \rfloor 的蚯蚓。特殊地,如果这两个数的其中一个等于 0 0 ,则这个长度为 0 0 的蚯蚓也会被保留。此外,除了刚刚产生的两只新蚯蚓,其余蚯蚓的长度都会增加 q q (是一个非负整常数)。

蛐蛐国王知道这样不是长久之计,因为蚯蚓不仅会越来越多,还会越来越长。蛐蛐国王决定求助于一位有着洪荒之力的神秘人物,但是救兵还需要 m m 秒才能到来 ……(m m 为非负整数)

蛐蛐国王希望知道这 m m 秒内的战况。具体来说,他希望知道:

  • m m 秒内,每一秒被切断的蚯蚓被切断前的长度(有 m m 个数);
  • m m 秒后,所有蚯蚓的长度(有 n+m n + m 个数)。

蛐蛐国王当然知道怎么做啦!但是他想考考你 ……

组合数问题 - 组合数学,递推,二维前缀和

组合数表示的是从 n n 个物品中选出 m m 个物品的方案数。举个例子,从 (1,2,3) (1, 2, 3) 三个物品中选择两个物品可以有 (1,2) (1, 2) (1,3) (1, 3) (2,3) (2, 3) 这三种选择方法。

根据组合数的定义,我们可以给出计算组合数的一般公式:

Cnm=n!m!(nm)! C_n ^ m = \frac{n!}{m!(n - m)!}

其中 n!=1×2××n n! = 1 \times 2 \times \cdots \times n

小葱想知道如果给定 n n m m k k ,对于所有的 0in 0 \leq i \leq n 0jmin(i,m) 0 \leq j \leq \min(i, m) 有多少对 (i,j) (i, j) 满足是 k k 的倍数。