状压dp dp( x , S ) 表示最后一个是 x , 当前选的奶牛集合为 S , 则状态转移方程 : dp( x , S ) = Σ dp( i , S - { i } ) ( i ∈ S , abs( h[ i ] - h[ x ] ) > k ) ------------------------------------------------------------------------------------------- #include<cstdio> #includ…
设f[i][j]为奶牛选取状态为i,最后一头选的为j,转移直接f[k][(1<<(k-1)|i]+=f[j][i] #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int n,m,p[20],a[20]; long long f[20][1<<16],ans; int main() { scanf("%d%d",&…
开始读错题了,然后发现一眼切~ Code: #include <cstdio> #include <algorithm> #define ll long long #define setIO(s) freopen(s".in","r",stdin) using namespace std; int s[20]; ll dp[1<<18][17],fac[20]; int main() { // setIO("input&…