2024ICPC网络赛1: C. Permutation Counting 4

题意:

给定 n n n个区间 L i , R i L_i,R_i Li,Ri设集合 A = { { p i } ∣ p i 为排列, L i < = p i < = R i } A=\{ \{ p_i\} | p_i为排列,Li<=p_i<=R_i\} A={{pi}∣pi为排列,Li<=pi<=Ri},让你求 ∣ A ∣ m o d    2 |A| \mod 2 ∣A∣mod2。

思路:

这道题在比赛的时候被卡了很久,我尝试猜各种结论,但是发现都行不通。导致了整个比赛的节奏很糟糕。

后面突然发现可以转换成行列式来做,就是第 i i i行的 L i L_i Li到 R i R_i Ri列全部填1,其它都是0,求这个行列式的奇偶性。

然后我就想着左端点相同的可以用最短的来消元,然后用线段树合并来维护。

赛后得知这是一个很常见的套路,但自己感觉能想到行列式已经非常的不容易。而且求解行列式可以建立n+1个点,给点 L i L_i Li和 R i + 1 R_i+1 Ri+1连边,判断是不是树即可。原理就是线性相关的几个行向量系数都是1和-1,就相当于往左跳或者往右跳。

最令人难过的是,我在一本竞赛书里面查积分表的时候发现旁边已经写了这个结论。。。

相关推荐
土司大王6 分钟前
LeetCode hot100——实现 Trie (前缀树)
java·算法·leetcode
水龙吟啸11 分钟前
华为研发岗AI方向9.9机考题复盘&分析
人工智能·python·算法·华为
小七在进步13 分钟前
类和对象(一)
java·数据结构·算法
Y_Bk13 分钟前
2026 ICPC EC网络预选赛第一场
算法
CarIise19 分钟前
C语言字符串基础:从char数组到双指针反转算法
算法
佳児素花痴╮21 分钟前
C++速通2
开发语言·c++·算法
麻瓜code1 小时前
【LeetCode】相交链表:双指针法,一次遍历找到交点
算法·leetcode·链表
zander2581 小时前
LeetCode 5. 最长回文子串
算法
hanlin032 小时前
刷题笔记:力扣第84题-柱状图中最大的矩形
笔记·算法·leetcode
青少儿编程课堂3 小时前
威佐夫博弈(双堆取子游戏)解析
c++·python·算法·bfs·信息学竞赛