P1010 幂次方(分治)
https://www.luogu.com.cn/problem/P1010
刚刚看到这个题时,有点懵,如果说这是个数学题
比如说7,应该先求出7 = 4 + 2 + 1;
即先分解出里面应该有最多的2的个数,然后再往下递推
- 算出2的多少次幂最接近给出的n;
- 用原来n的数减去2的幂,如果这个数大于2,继续对新的n进行搜索;
- 如果幂大于2,对幂进行上述搜索;
- 一旦输入函数的数为0(退出)或1(2的0次幂)或2(2的1次幂,这时候1不需要输出),输出;
#include <bits/stdc++.h>
using namespace std;
int n;
void search(int x){
if(!x)
return;
int p = ,q = ;
cout << ;
while(x >= p){
p *= ;
q++;
}
q--;
if(!q || q == )
cout << "(" << q << ")";
if(q >= ){
cout << "(";
search(q);
cout << ")";
}
x -= p / ;
if(x){
cout << "+";
search(x);
} }
int main(){
ios::sync_with_stdio();
cin >> n;
search(n);
return ;
}
P1010 幂次方(分治)的更多相关文章
- P1010 幂次方 P1022 计算器的改良
P1010 幂次方 一.题目 https://www.luogu.org/problemnew/show/P1010 二.代码 #include<bits/stdc++.h> using ...
- 2021.07.26 P1010 幂次方(数论)
2021.07.26 P1010 幂次方(数论) [P1010 NOIP1998 普及组] 幂次方 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.二进制 题意: 用20 ...
- p1010幂次方---(分治)
题目描述 任何一个正整数都可以用222的幂次方表示.例如 137=27+23+20137=2^7+2^3+2^0 137=27+23+20 同时约定方次用括号来表示,即aba^bab 可表示为a(b) ...
- 洛谷 P1010 幂次方 Label:模拟
题目描述 任何一个正整数都可以用2的幂次方表示.例如 137=2^7+2^3+2^0 同时约定方次用括号来表示,即a^b 可表示为a(b). 由此可知,137可表示为: 2(7)+2(3)+2(0) ...
- 解题笔记-洛谷-P1010 幂次方
0 题面 题目描述 任何一个正整数都可以用2的幂次方表示.例如 137=2^7+2^3+2^0 同时约定方次用括号来表示,即a^b 可表示为a(b). 由此可知,137可表示为: 2(7)+2(3)+ ...
- P1010 幂次方 递归模拟
题目描述 任何一个正整数都可以用22的幂次方表示.例如 137=2^7+2^3+2^0137=27+23+20 同时约定方次用括号来表示,即a^bab 可表示为a(b)a(b). 由此可知,13713 ...
- 洛谷P1010 幂次方
题目描述 任何一个正整数都可以用2的幂次方表示.例如 137=2^7+2^3+2^0 同时约定方次用括号来表示,即a^b 可表示为a(b). 由此可知,137137可表示为: 2(7)+2(3)+2( ...
- 洛谷 P1010 幂次方
做了好久,递归拆吧 #include<iostream>#include<cstdio>#include<cmath>using namespace std;int ...
- 集训作业 洛谷P1010 幂次方
这个…… 这个题看上去有点难的样子. 仔细看看,感觉有点简单.啊,是递归啊,正经的看一看,好像是把一个数分成2的几次方的和. 然后余数和比他小的最大的2的次方数如果不是2的一次方或者2的0次方,就继续 ...
随机推荐
- 刷题79. Word Search
一.题目说明 题目79. Word Search,给定一个由字符组成的矩阵,从矩阵中查找一个字符串是否存在.可以连续横.纵找.不能重复使用,难度是Medium. 二.我的解答 惭愧,我写了很久总是有问 ...
- 有多少人在面试时,被Java 如何线程间通讯,问哭了?
正常情况下,每个子线程完成各自的任务就可以结束了.不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了. 本文涉及到的知识点: thread.join(), object. ...
- selenium获取缓存数据
爬虫呢有时候数据方便有时候登入获得cookies,以及获取他存缓存中的数据 一.获取缓存中的数据其实很简单js注入就好了 localStorage_1 = driver.execute_script( ...
- 解决vue-cli使用组件报错
今天使用vue-cli,明明写的没错,都是vue-cli自动生成的,编译时怎嘛就会报错呢? 报错信息如下: 浏览器端报错: Failed to compile. ./src/components/Hi ...
- Linux学习记录(二):常用工具
博主使用的操作系统为Ubuntu tmux 终端分屏 安装 Ubuntu使用apt-get安装 sudo apt-get install tmux 使用 默认命令键:Ctrl + B %(百分号) 左 ...
- 数据结构(集合)学习之Set
集合 框架关系图: Collection接口下面有三个子接口:List.Set.Queue.此篇是关于Set<E>的简单学习总结. 补充:HashTable父类是Dictionary,不是 ...
- H5_0024:对于事先无法确定css大小的情况,可以通过JS动态修改
$(function(){ function Heights(){ var WinH = $(window).height(); ...
- Python 文件&异常 初学者笔记
文件 读取整个文件 with open('pi_30_digits.txt') as file_object :#Python在当前执行文件目录寻找指定文件#filename = 文件的绝对路径或相对 ...
- 2019年3月最新可用KMS激活服务器地址
更新日期:2019/3/6 kms.03k.org kms.chinancce.com kms.lotro.cc cy2617.jios.org kms.shuax.com kms.luody.inf ...
- springMVC请求访问的整个过程
//以上个随笔(springMVC项目配置文件)为基础,详述springMVC请求的整个过程流向 web.xml ...