Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<cstdio>#include<vector>#include<cstring>using namespace std;#define pb push_backconst int maxn=100010;const int maxk=17;int n,k,ans;int c[maxn];vector<int> a[maxk];int dis[maxk][maxk];int f[(1<<16)+100];int st[maxk][maxn];void add(int *st,int x,int inc){while (x<n+1){st[x]+=inc;x|=x+1;}}int sum(int *st,int x){int s=0;while (x>=0){s+=st[x];x=(x&(x+1))-1;