列表分组算法
发布时间: 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;
写的有点草。。反正大体意思就是用哈希判重就成
那个分组很简单,程序体里就不显示了
热点内容