next_permutation (start , end)
P1618 三连击(升级版) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <bits/stdc++.h>
using namespace std;
using LL = long long;
signed main()
{
LL A,B,C,cnt=0;
long a[10]={1,2,3,4,5,6,7,8,9};
LL x,y,z;
cin>>A>>B>>C;
do{
x =a[0]*100+a[1]*10+a[2];
y =a[3]*100+a[4]*10+a[5];
z =a[6]*100+a[7]*10+a[8];
if(x*B==y*A && y*C==z*B&& x*C==A*z)
printf("%lld %lld %lld\n",x,y,z),cnt++;
}while( next_permutation (a,a+9));//next_permutation();
if(!cnt){
puts("No!!!"); //puts("";
}
return 0;
}
子集枚举
总子集2的n次方个
数组最大:3*1e7
统计二进制中1的个数可以用内建函数_builtin_popcount( ).