用二维数组写了好久,失败啊。。
#include #include #include #include using namespace std;int n,m;int dp[110][110][110];char st[110][12];int s[110],an[110],as[110];int convert(int n){ int cnt=0; while(n>0) { if(n%2)cnt++; n/=2; } return cnt;}int main(){ int cnt=0; memset(s,0,sizeof(s)); for(int i=0;i<=(1<<10);i++) { if(!(i&(i<<1))) if(!(i&(i<<2))) {as[cnt]=i;s[cnt]=convert(i);cnt++;} } while(cin>>n>>m) { int nallstatus=2<<(m-1); memset(dp,-1,sizeof(dp)); memset(st,'\0',sizeof(st)); memset(an,0,sizeof(an)); for(int i=0; i