基础算法|暴力
心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C++学习笔记,常言道,不积跬步无以至千里,希望有朝一日我们积累的滴水可以击穿顽石。
## 暴力算法
暴力解题步骤:
1.确定解的形式(题目问什么就答什么);
2.选择枚举方法:
直接枚举法 一般层数固定不超过4层
递归枚举法 层数不固定,当循环层数可变时往往用递归
3.判断函数:在枚举出一个解后,需判断其是否为可行解,于是我们要写判断函数。(这个判断函数可以根据你枚举出的一个解,来判断这个解是否可行)
实践代码:
bool check(int a,int b,int c,int m){//判断函数
return (a+b+c)*(a^b^c)>=m;
}
void solve(){
int n,m;cin>>n>>m;
vector<int> a(n+1);
for(int i=1;i<=n;i++) cin>>a[i];
int ans=0;
for(int i=1;i<=n;i++){//枚举三元组
for(int j=i+1;j<=n;j++){
for(int k=j+1;k<=n;k++){
if(check(a[i],a[j],a[k],m)) ans++;//判断
}
}
}
cout<<ans<<endl;
}
心有猛虎,细嗅蔷薇。再见了朋友~