杂题

题意

(n)个点带点权DAG,要选择一段连续的拓扑序上的点,使得点权最大。(nle 50)

做法

一段连续的充要条件为:任意一条路径上为不选-选-不选

将每个点拆成两个(X_1,X_2)
对于((X,Y)in E),有(X_1longrightarrow Y_1,X_2longrightarrow Y_2(flow:infty))

  • (val_Xge 0),有(Slongrightarrow X_1(flow:val_X))(X_2(flow:val_X)longrightarrow T)
  • (val_X<0),有(X_1longrightarrow X_2(flow:|val_X|))

答案为(sum val_X[val_xge 0]-maxflow)

原文地址:https://www.cnblogs.com/Grice/p/12971124.html