Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <iostream>#include <cstring>#include <cmath>#include <algorithm>#include <map>#include <vector>#include <set>#define ll long longusing namespace std;const int N = 1e5+10;const int K =17;int T,n,k;long long w[K][K],g[K][K];int d[N];int num[N][21];long long dp[1 << 16];void init(){memset(num, 0, sizeof(num));memset(w, 0, sizeof(w));memset(dp, 0x3f, sizeof(dp));memset(g,0,sizeof(g));}ll solve(){for(int i = 1; i <= n; i++)for(int j = 1; j <= k; j++) num[i][j] = num[i - 1][j] + (d[i] == j);for(int i = 1; i <= n; i++)for(int j = 1,a,b; j <= k; j++){a=d[i];b=b+1;w[a][j] += num[i][j];