CF1874G Jellyfish and Inscryption 做题记录
给定一张 n 个点 m 条边的 DAG,每条边 ui→vi 都满足 ui<vi。
点有五种类型:
- 无特殊事件;
- 走到这里会获得一个二元组 (a,b);
- 走到这里可以选择一个之前获得的二元组,将其的 a 增加 x;
- 走到这里可以选择一个之前获得的二元组,将其的 b 增加 x;
- 走到这里会获得一个数 w;
你要从点 1 走到点 n,保证点 1 和点 n 是 1 类点。
走到点 n 时可以选择一个之前获得的二元组,将其的 b 乘上 109。
最大化最终获得的所有二元组的 a×b 的和加上获得的数 w 的和。
1≤n≤200,1≤m≤min(2n(n−1),2000),1≤a,b,x≤200,1≤w≤106。
AGC009D Uninity 做题记录
如下定义一棵树的海胆度:
- 一个单点的海胆度是 0;
- 一棵树的海胆度是最小的 k 满足删掉其某个节点后剩下的连通块的海胆度都 ≤k−1;
给定一棵 n 个点的树,求它的海胆度。
1≤n≤105。
ARC184E Accumulating Many Times 做题记录
对于一个长 m 的 01 序列 a[1,m],定义变换 f:
- f(a)i=(j≤i∑aj) mod 2;
也就是做一次异或意义下的前缀和。
对于两个长 m 的序列 a,b,定义 g(a,b) 为:
- 至少对 a 做多少次变换 f 才能令 ∀i,ai=bi,如果无论做多少次变换都不可能,那么 g(a,b) 为 0;
现在给定 n 个长 m 的序列 a[1,n],求 i<j∑g(ai,aj),对 998244353 取模。
1≤n×m≤106,ai,j∈{0,1}。
AT_joisc2017_c 手持ち花火 (Sparklers) 做题记录
有 n 个人在一条数轴上,第 i 个人位于 Xi。
每个人手中有一个烟花,每一个烟花可以燃烧 T 秒。(可加强到每个人烟花燃烧时间不同)
第 0 秒时,第 k 个人的烟花开始燃烧。
人们可以在数轴上以相同的速度 s 奔跑(即每秒奔跑 s 个单位)。当两个人位于同一个位置,并且某一个人手中的烟花是点燃状态且另一个人手中的烟花未点燃,那么他们可以选择是否传火,即点燃另一个人手中的烟花。
求最小的非负整数 s 使得所有人的烟花都可以被点燃。
1≤n≤105,0≤Xi,T≤109,Xi≤Xi+1。
0%