当前没有测试数据。
细致不可知的插入操作
得分:600分
问题描述
我们有一个由整数对组成的序列A。初始时,A=((0,1),(1,0))。
你可以对A执行以下操作任意次(可以是零次):
- 选择相邻的两个整数对(a,b)和(c,d),并在它们之间插入(a+c,b+d)。
对于由整数对组成的序列T,我们定义f(T)如下:
- 定义f(T)为使T中的每个元素都包含在A中所需的最小操作次数。
- 如果没有这样的操作,则f(T)=0。
现在给定一个由N个整数对组成的序列S=((a1,b1),(a2,b2),...,(aN,bN)),其中S的所有元素都是两两不同的。S共有2N×(N+1)个可能的连续子数组$S_{l,r}=((a_l,b_l),(a_{l+1},b_{l+1}),...,(a_r,b_r))$。请计算所有这些子数组Sl,r中的f(Sl,r)的和,对998244353取模。
输入
输入以以下格式从标准输入中给出:
N
a1 b1
a2 b2
...
aN bN
输出
输出一个整数,表示答案。
示例
输入1
7
1 2
3 7
3 5
0 0
1000000000 1
0 1
6 3
输出1
3511324
【解释】对于每个Sl,r,其对应的f(Sl,r)的值如下:
- f(S1,1)=2:我们可以通过插入操作从((0,1),(1,0))得到((0,1),(1,1),(1,0)),再得到((0,1),(1,2),(1,1),(1,0))。
- f(S1,2)=5
- f(S1,3)=7
- f(S2,2)=5
- f(S2,3)=7
- f(S3,3)=4
- f(S5,5)=1000000000=109
- f(S5,6)=1000000000=109
- f(S6,6)=0:(0,1)最初就包含在A中。
- 对于未被提及的Sl,r,f(Sl,r)=0:我们可以证明,A无论经过怎样的操作,都不会包含(0,0)或(6,3)。
因此,f(Sl,r)的和为2000000030=2×109+30,对998244353取模得到3511324。