题目:
状压dp。注意一下代码中标记的地方。
#include#include #include using namespace std;int n,m,lm;long long d[15][1<<12],ans;bool list[1<<12];void pre(){ memset(list,0,sizeof list); for(int i=0;i >1)&1)==0&&k+1<=m) { k++;u>>=1;ct++; } if(ct%2) { flag=1;break; } } u>>=1;// } if(!flag)list[i]=1; }}int main(){ while(1) { scanf("%d%d",&n,&m); if(!n&&!m)return 0; if(n==1) { printf("%d\n",!(m%2)); continue; } lm=1<