摘要:
solution: 果不愧是 JOISC 毒瘤题。 正确的思考方式: 如果只有往右扫的操作,那么操作的顺序就不重要了,那么一个点往右移动只在于能包含它的最能往右的操作。 如果还有往上扫的操作,那么一个高度为 l l l 的往右扫的操作,实际上只能把还没扫除范围的点往右移,注意到被扫除范围的点一定是 阅读全文
摘要:
solution: 部分分好少。 若是有双向连边,那么双向边联通的集合可以视为一个集合。 对于一个大小为 s 的极大团 T 对答案的贡献为: T 内部有 s(s-1) 条边若有 k 个不同的节点连向 T ,有 sk 条边 in[u] : 入边,连向它的点的集合 out[u] :出边,第一维是所指向节 阅读全文
摘要:
题意:给你一个序列 a a a 找到只在 a a a 序列中出现一次的子序列数量。 solution: 考虑怎么去重。 首先满足条件的序列一定是包含在 a a a 的子序列中的。 设 dp[i] 表示必选第 i 个字符,满足条件的不同子序列数量。 先说转移方程: d p [ i ] = ∑ d p 阅读全文
摘要:
题意:构造一个排列 p p p ,使得 p p p 的其中一个 LIS 为给定的序列 a a a 。保证 a a a 单调递增。 solution: 考点:数学归纳法。 我写的伪贪心 hhh。 如果 k=1 ,那么只有唯一的构造方案 n, n-1, …, 1 考虑从左往右构造,保证字典序最小。设当前 阅读全文
摘要:
solution: 毒瘤题。 注意我们只关注同余方程有解即可。 根据题意得到 a i + p i ∗ y = A T K ∗ x i a_i+p_i*y=ATK*x_i ai+pi∗y=ATK∗xi 化简得到 A T K ∗ x i ≡ a i ( m o d p i ) ATK*x_i\eq 阅读全文
摘要:
solution: 猜到了结论,但是没有实力证明。 现在我把它证明出来了。 (i,j)=a_0, (i,j+1)=a_1 =>i=a_0x_0, j=a_0y_0, || i=a_1x_1, j+1=a_1y_1 =>lcm(a_0,a_1,…,a_n) | i 如果 i ≠ l c m ( a 0 阅读全文
摘要:
回滚莫队的精髓在于撤销。 本题要记录一个子树最小值,所以要用 vector 存路径,再倒序还原回去。 然后用 l a s t a n s lastans lastans 记录上次询问答案。 注意回收 T r i e Trie Trie 树上的节点。常数会小一些。 时间复杂度 O ( ( n + m 阅读全文