藍橋杯 手鍊樣式 列舉

2021-07-10 14:22:11 字數 657 閱讀 2811

看到網上有人用的手算解法,還有相關**。(⊙o⊙)…還是列舉適合我,節約腦力。

思路大概就是:

1、手鍊可以轉動,所以儲存時將字串加倍,這樣就可以找到轉動後的情況。

2、手鍊可以翻轉,所以再儲存一下reverse的字串。

3、列舉方法,直接next_permutation,簡單粗暴。

#include #include #include #include using namespace std;

vectorv; //儲存已經找出的情況

int sum = 0;

int main()

} if( it != v.end() ) continue;

string str2 = str + str;

v.push_back(str2);

reverse(str2.begin(), str2.end()); //需要algorithm標頭檔案

v.push_back(str2);

sum ++;

}while(next_permutation(str.begin(), str.end()));

cout << sum ;

}

結果:運算時間有點長,3s後出結果,1170。

藍橋杯 水題練習 手鍊樣式

小明有3顆紅珊瑚,4顆白珊瑚,5顆黃瑪瑙。他想用它們串成一圈作為手鍊,送給女朋友。現在小明想知道 如果考慮手鍊可以隨意轉動或翻轉,一共可以有多少不同的組合樣式呢?答案為 1170 include using namespace std intmain if i v.size continue str...

藍橋杯 2015初賽 手鍊樣式

小明有3顆紅珊瑚,4顆白珊瑚,5顆黃瑪瑙。他想用它們串成一圈作為手鍊,送給女朋友。現在小明想知道 如果考慮手鍊可以隨意轉動或翻轉,一共有多少不同的組合樣式?請你輸出該整數。不要輸出任何多餘的內容或說明性的文字。12!3!4!5!12 2310種,這是不考慮可以翻轉的答案。若考慮翻轉需要求出那些左右對...

藍橋杯2015初賽 手鍊樣式

小明有3顆紅珊瑚,4顆白珊瑚,5顆黃瑪瑙。他想用它們串成一圈作為手鍊,送給女朋友。現在小明想知道 如果考慮手鍊可以隨意轉動或翻轉,一共有多少不同的組合樣式?輸出請你輸出該整數。不要輸出任何多餘的內容或說明性的文字 思路 1.將珠子抽象成字元,然後使用c 中的下乙個排列函式來求排列 2.由於手鍊可以任...