您的位置:首页 > 其它

分治算法的初步探索

2020-04-05 18:24 78 查看

初次接触分治算法还是在做洛谷时,所以洛谷是个好网站,感谢好友推荐!
p1010幂次方

#include<iostream>
using namespace std;
int n;
void search(int x){
if(n!=0){
int p=1,q=0;
cout<<'2';//每一次搜索都要输出2
while(x>=p){
++q;
p*=2;
}
--q;//多算了一次幂
if(q==0||q==2) cout<<'('<<q<<')';//0次幂与二次幂直接输出
if(q>=3){//幂大于3
cout<<'(';
search(q);
cout<<')';
}
x-=p/2;//p多乘了一个2
if(x){//分开处理 ,并且q=1,不进行进一步处理
cout<<'+';search(x);
}
}
}
int main(){
cin>>n;
search(n);
return 0;
}

好吧,又明白了一件事,原来插入代码要这样搞。
分治算法好像也离不开dfs思想,可见dfs还是挺重要的。
这篇文章挺水的。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
小熊迪帝 发布了12 篇原创文章 · 获赞 0 · 访问量 181 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: