手鍊樣式
小明有3顆紅珊瑚,4顆白珊瑚,5顆黃瑪瑙。
他想用它們串成一圈作為手鍊,送給女朋友。
現在小明想知道:如果考慮手鍊可以隨意轉動或翻轉,一共可以有多少不同的組合樣式呢?
全排列,對每種情況轉動,翻轉檢測;
#include #include #include #include #include using namespace std;
vectoruni;
int main()
}// 翻轉
if(!flag)}}
if(!flag)
}cout << tot;
return 0;
}
分析:這個題首先一定要理解題意,轉動和翻轉是個什麼意思,轉動就是我們所得到的的排列是個環,即起點不固定,具體點說即使1234和2341是一種方式(3421也一樣)。翻轉就是,這個排列是個立體的,可以上下左右翻轉,具體點說即
1 1
2 3 和 3 2 是一樣的(左右翻轉),弄清了題意,就能事半功倍。
4 4
如果沒有轉動和翻轉兩個要求,就是直接全排列,有轉動和翻轉就得小心重複了
轉動的話我們可以把str複製乙份,比如abcd,我們變成abcdabcd,只要在這個序列裡找到滿足的情況就可以了
翻轉的話可以用reverse()函式,用乙個vector來儲存滿足的情況,用string情況下的next_permutation()函式進行全排列,如果vector中沒有滿足的,就將複製後的和翻轉後的加進vector中
具體實現看**
藍橋杯第六屆省賽 手鍊樣式 STL
小明有3顆紅珊瑚,4顆白珊瑚,5顆黃瑪瑙。他想用它們串成一圈作為手鍊,送給女朋友。現在小明想知道 如果考慮手鍊可以隨意轉動或翻轉,一共可以有多少不同的組合樣式呢?分析 這個題首先一定要理解題意,轉動和翻轉是個什麼意思,轉動就是我們所得到的的排列是個環,即起點不固定,具體點說即使1234和2341是一...
河南省藍橋杯第六屆省賽 7 手鍊樣式
題目描述 小明有3顆紅珊瑚,4顆白珊瑚,5顆黃瑪瑙。他想用它們串成一圈作為手鍊,送給女朋友。現在小明想知道 如果考慮手鍊可以隨意轉動或翻轉,一共可以有多少不同的組合樣式呢?請你提交該整數。不要填寫任何多餘的內容或說明性的文字。解答 定義字串str aaabbbbccccc 代表手鍊的串接情況,對該字...
藍橋杯題目 第六屆
如 圖1 所示。圖中的所有小方格面積都是1。那麼,圖中的三角形面積應該是多少呢?請填寫三角形的面積。不要填寫任何多餘內容或說明性文字。割補法 28 觀察下面的現象,某個數字的立方,按位累加仍然等於自身。1 3 1 8 3 512 5 1 2 8 17 3 4913 4 9 1 3 17 請你計算包括...