有一个
N
N
N个点的有向图,编号
[
1
,
n
]
[1,n]
[1,n],首先有
n
−
1
n-1
n−1条边,第
i
i
i条为
(
i
,
i
+
1
)
(i,i+1)
(i,i+1),边权为0。
然后对于所有有序对
(
i
,
j
)
(
i
!
=
j
)
(i,j)(i!=j)
(i,j)(i!=j),如果
i
<
j
i<j
i<j,边权为
−
1
-1
−1,否则边权为
1
1
1,共加入
n
∗
(
n
−
1
)
n*(n-1)
n∗(n−1)条边,每一个有序对都有一个贡献。
要求将后面新加入的
n
∗
(
n
−
1
)
n*(n-1)
n∗(n−1)条边中的若干边删去,使得图上没有负环,求最小的贡献。
1
≤
N
≤
500
1\le N \le500
1≤N≤500
Solution
想了很久一个负环在以上条件上的形态,根据形态来DP,但是状态实在是不好划分。
由于这是一个有顺序的图,我们可以考虑一个差分约束的模型,即从
1
1
1开始走最短路,设
d
x
d_x
dx为到达
x
x
x的最短路长度,那么对于一条边
(
i
,
j
)
(i,j)
(i,j),有
d
i
+
w
[
i
,
j
]
≥
d
j
d_i+w[i,j]\ge d_j
di+w[i,j]≥dj。
那么不难发现,负环一定不能满足上面的条件,反之则没有负环。
由于
d
i
≥
d
i
+
1
d_i\ge d_{i+1}
di≥di+1,可以发现
c
i
=
d
i
−
d
i
+
1
c_i=d_i-d_{i+1}
ci=di−di+1,有
0
≤
c
i
≤
1
0\le c_i\le1
0≤ci≤1。
考虑将
n
−
1
n-1
n−1个
c
i
c_i
ci放
0
/
1
0/1
0/1,并将不满足这个序列的边删去,对于
(
i
,
j
)
(
i
<
j
)
(i,j)(i<j)
(i,j)(i<j),有
∑
k
=
i
j
−
1
c
i
≥
1
\sum_{k=i}^{j-1}c_i\ge1
∑k=ij−1ci≥1,对于
(
i
,
j
)
(
i
>
j
)
(i,j)(i>j)
(i,j)(i>j),有
∑
k
=
j
i
−
1
c
i
≤
1
\sum_{k=j}^{i-1}c_i\le1
∑k=ji−1ci≤1。