列表分組演算法
發布時間: 2025-03-31 10:26:01
❶ n個數分組排列的演算法
如果沒有空間復雜度的限制,三層循環加判重就行了,判重可以用哈希,主題代碼類似這樣。。
int ha[ 10101101 ]={0}; //隨便開一個素數大數組,這里數據很小,所以開的也比較小,具體看哈希技術的詳解吧
bool hash(int a , int b ,int c)
{
if(hash[ (a*a+b*b+c*c)% 10101101]!=0) return 0;
hash[ (a*a+b*b+c*c)% 10101101]++;
return 1;
}
for(int i = 1 ; i <= 24 ; i++)
for(int j = 1 ; j <= 24 ;j++)
for(int k = 1 ; k <= 24 ; k++)
if(i!=j && j!=k && i !=k && hash(i,j,k))
cout << i<<" "<<j<<" "<<k;
寫的有點草。。反正大體意思就是用哈希判重就成
那個分組很簡單,程序體里就不顯示了
熱點內容