題意:
給你13張牌,問你還有一張什麼牌可以胡,把這些牌列出來;
思路:首先麻將要胡的條件就是有且乙個對子(兩張一樣),剩下的全部是三張或者順子,我們一開始13張,加上一張,一共14張.
也就是要有一對對子,然後有四組三張或者順子.牌一共34張,那麼我們可以開始列舉;把每一張牌加進去,看看能不能胡;
首先有四張一樣的就可以直接排除;
然後我們判斷是不是胡牌,先列舉出一堆對子,在判斷剩下的是不是都是三張或者順子就行了
ac
#include #include #include const char *mahjong = ;
char s[20];
int mj[15];
int c[34];
int findmahjong( char *s)
return -1;
}bool search(int successnum)
} for(int i = 0; i < 24; i++)
} return false;
}int check()
c[i] += 2;
} }return false;
}int main()
mj[0] = findmahjong(s);
for(int i = 1; i < 13; i++)
printf("case %d:", cas++);
f = false;
for(int i = 0; i < 34; i++)
if( c[i] >= 4)
continue;
c[i]++;
if(check() == true)
c[i]--;
} if(f == false)
printf(" not ready");
printf("\n");
} return 0;
}
UVa 11210 中國麻將 暴力深搜
傳送門 考慮到uva和la有一點不熟悉,我就都是咋vj上交的題,鏈結也是.這些題的做法就不說了,我是在白書的基礎上加深了點理解自己寫的.解釋也是直接寫在 中的.大概思想就是列舉每一種牌,檢查是否有了這張牌後可以 和 所以直接深搜即可.拿來練練 力.其實後面做了一道hdu的跟這道很像,但是hdu的那道...
39 回溯演算法
var res 全域性遍歷,下標表示行,值表示queen所在列 cal8queens 0 遞迴函式,求每行的queen function cal8queens row for let col 0 col 8 col 判斷棋子放在 row,col 位置,是否正確 function isok row,c...
演算法8 回溯
理論基礎 回溯法是一種組織搜尋的一般技術,有 通用的解題法 之稱,用它可以系統的搜尋乙個問題的所有解或任一解。有許多問題,當需要找出它的解集或者要求回答什麼解是滿足某些約束條件的最佳解時,往往要使用回溯法。可以系統地搜尋乙個問題的所有解或任意解,既有系統性又有跳躍性。回溯法的基本做法是搜尋,或是一種...