洛谷 P1010 幂次方
来源:互联网 发布:机器人大擂台知乎 编辑:程序博客网 时间:2024/06/05 06:53
P1010 幂次方
#include<iostream>using namespace std;int ans2[15];//ans2[i]=2^iint ans1[50001];//如ans1[i]=k,则表示2^(k-1)<i,2^k>=ivoid work(int a){ int b=ans1[a]; if(a==1)//a为1,2,3则直接输出 cout<<"2(0)"; if(a==2) cout<<"2"; if(a==3) { cout<<"2+2(0)"; } if(b>1)//如果是2的超过1次方,则还可以再分,因此输出2(后将b进行递归,递归完后如果a-2^b大于0,则输出)+并递归a-2^b=a-ans2[b],否则直接输出) { cout<<"2("; work(b); if(a!=ans2[b]) { cout<<")+"; work(a-ans2[b]); } else { cout<<')'; } }}int main(){ int n,k=1,i,temp; cin>>n; ans1[0]=-1; ans2[0]=1;ans2[1]=2; while(ans2[k]<=n) { k++; if(k%2==0) { temp=ans2[k/2]; ans2[k]=temp*temp; } else { temp=ans2[k/2]; ans2[k]=temp*temp*2; } for(i=ans2[k-1];i<ans2[k];i++) ans1[i]=k-1; }//快速幂预处理出ans1,ans2 work(n); return 0;}
阅读全文
0 0
- 洛谷 P1010 幂次方
- 洛谷 P1010 幂次方
- 洛谷 P1010 幂次方
- 洛谷 P1010 幂次方
- 洛谷P1010 幂次方
- 洛谷P1010幂次方
- |洛谷|分治|P1010 幂次方
- 【分治】 洛谷 P1010 幂次方
- 洛谷——P1010 幂次方
- P1010 幂次方
- P1010 幂次方
- P1010 幂次方 luogu
- P1010 幂次方
- P1010 幂次方
- P1010 幂次方
- 【P1010-幂次方】解题记录
- NOIp1998PJ/Luogu P1010 幂次方 解题报告
- p1010
- Windows下Oracle 11g远程连接配置
- POJ 1019 Number Sequence <递推关系>
- iterm2快捷键
- Linux c 可变参函数 和可变参宏
- 深入浅出Java MVC(Model View Controller) ---- (JSP + servlet + javabean实例)
- 洛谷 P1010 幂次方
- [Android]bundle传递arrayList
- JDBC JNDI DBCP C3P0
- oracle 修改字符集 修改为ZHS16GBK
- 沟通心理
- 华为云计算产品文档
- EL表达式的使及自定义过程
- Android 7.1.1 来一个未接电话后不查看,关机后再开机状态栏不显示未接图标
- Android使用protobuf