传送门:http://codeforces.com/problemset/problem/580/d
思路:状压DP,f[i][j]表示最后一个为i,已选取的菜的状态为j。
#include
#include
#include
const int maxt=540000;
using namespace std;
typedef long long ll;
int n,m,k,g[20][20],a[20],pow[20];ll f[20][maxt],ans;
int main(){
pow[0]=1;for (int i=1;i<=19;i++) pow[i]=pow[i-1]<<1;
scanf("%d%d%d",&n,&m,&k);
for (int i=0;i