首先把一个区间翻转的最小代价肯定不是题目给出的那个代价
我们先跑一通floyd就能搞出来最小代价
然后呢 把所有奇偶性变化的位置 连成一个完全图 跑最小权完美匹配就好了
不会带花树 拷了个随机匹配的板子
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
namespace Work{
const ll OO=1LL<<40;
const int MAXN=405;
ll w[MAXN][MAXN], g[MAXN][MAXN];
int match[MAXN], path[MAXN], p[MAXN], len;
ll d[MAXN];
bool v[MAXN];
int n, m, k;
bool dfs(int i) {
path[len++] = i;
if (v[i]) return true;
v[i] = true;
for (int j = 0; j < k; ++j) {
if