用dp[i]表示第i天的最少花费 cost[i][j]表示从i到j天方案不变时的士兵数 用双层循环+kruskal预处理出cost[i][j] P[u][v][t]表示u到v的路在t时间是否可用 (即灾害) 按照时间轴进行dp,外层循环i,内层循环j表示它的方案从第j天转移而来 dp[i]=min(dp[i],dp[j]+cost[j+1][i]*V*(i-j)); 即从第j天改变方案,选择最小合法方案后,一直到第i天 初始化dp[i]=cost[1][i]*i*V; //注意cost[1][i]可能等于inf 最后dp[i]+=K;表示在某一天改变了一次方案 1 #i...