P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows
——————————————————————————————————————————————————————————
我真睿智
重叠变量名查了十多分钟的错
很好的状压题,无论是隐形的表示还有计数
————————————————————————————
#include<bits/stdc++.h> using namespace std; long long int n,kk,ans,a[17],f[17][1<<17],cows[17]; int main() { cin>>n>>kk; for(int i=1;i<=n;i++) { cin>>a[i];; f[i][cows[i]=1<<(n-i)]=1; } for(int i=1;i<=(1<<n)-1;i++) for(int j=1;j<=n;j++) if(i&cows[j]) for(int k=1;k<=n;k++) if((j!=k)&&(abs(a[k]-a[j])>kk))f[j][i]+=f[k][i^cows[j]]; for(int i=1;i<=n;i++)ans+=f[i][(1<<n)-1]; cout<<ans; }