AKSZ-枚举算法
2024-03-17 17:38:29
发布于:广东
进制
二进制:0b开头,例如 int a = 0b1110
;
八进制:0开头,例如 int b = 0173
;
十六进制:0x开头,例如 int c = 0x10c
.
十进制转n进制
整数:短除法,将余数逆序排列即可。
小数:整数小数分开处理,小数部分乘以n,取整数部分,再用小数部分继续乘,直到等于一。
枚举算法
三要素:枚举对象,枚举条件与枚举范围
枚举排列
复杂度:O(n!)
测速代码
#include<iostream>
#include<time.h>
using namespace std;
int main(){
clock_t start,end;
start=clock();
//要跑的程序
end=clock();
printf("%.2ldms",double(end-start)/CLOCKS_PER_SEC*1000);
return 0;
}
二进制子集枚举
#include<iostream>
#define maxn 15
using namespace std;
int n,a[maxn];
void solve(int x){
for(int i=0;i<n;i++){
if((1<<i)&x)cout<<a[i]<<" ";
}
puts("");
}
int main(){
cin>>n;
for(int i=0;i<n;i++)cin>>a[i];
for(int i=0;i<=(1<<n)-1;i++)solve(i);
return 0;
}
埃氏筛
复杂度:O(log(log n))
全部评论 1
建议附带上相应的题目会更好!
2024-03-17 来自 浙江
0
有帮助,赞一个