当前位置: 首页 > news >正文

NOIP1998

P1010 [NOIP 1998 普及组] 幂次方

记忆化搜索。

#include <bits/stdc++.h>
#define umap unordered_map
#define vint vector<int>
#define ll long long
#define pii pair<int,int>
#define all(x) x.begin(),x.end()
#define ull unsigned long long
#define uint unsigned int
#define rg register
#define il inline
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define per(i,a,b) for(int i=(a);i>=(b);--i)
#define sqr(x) ((x)*(x))
using namespace std;
const int INF=0x3f3f3f3f;
inline int read(){int w=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){w=(w<<1)+(w<<3)+(ch^48);ch=getchar();}return w*f;
}
inline void write(int x){if(x<0){putchar('-');x=-x;}if(x>9) write(x/10);putchar(x%10+'0');
}
const int N=2e4+10;
int n;
string f[N];
string solve(int x){if(!f[x].empty()) return f[x];else if(x==1){return f[x]="2(0)";}else if(x==2){return f[x]="2";}string res="";for(int i=15;i>=0;--i){if((x>>i)&1){string add="2("+solve(i)+")";if(i==0) add="2(0)";else if(i==1) add="2";if(res.empty()) res=add;else res+="+"+add;}}return f[x]=res;
}int main(){#ifndef ONLINE_JUDGE//freopen("in.txt","r",stdin);#endifint n=read();cout<<solve(n)<<endl;#ifndef ONLINE_JUDGEfprintf(stderr,"%f\n",1.0*clock()/CLOCKS_PER_SEC);#endifreturn 0;
}
http://www.sczhlp.com/news/6234/

相关文章:

  • ETL和ELT的适用场景,优劣势对比
  • 2025牛客多校第七场(持续更新)
  • 星巴克新加坡站6000美元账户接管漏洞:IDOR漏洞详解
  • Z 函数
  • 摸鱼笔记
  • NumberTheory
  • 8.5总结
  • 长链剖分
  • 聚集索引与非聚集索引的区别
  • 完整教程:【练习三】Java猜数字游戏的实现与Random的使用
  • 服务之间远程Feign调用,出现参数丢失
  • Python脚本开发总结
  • 新的
  • 洛谷的题目精选(由易到难)
  • pyyzDay2
  • 将 Docker虚拟磁盘文件ext4.vhdx迁移出C盘 ,更换到D盘
  • 基于JWT的多租户RAG技术实现解析
  • 《邹忌讽齐王纳谏》
  • 2025年8月5日
  • P9221 题解
  • 挂载目录和卷映射区别 - Charlie
  • P4017 最大食物链计数
  • 对于数据如何传到@Controller控制器的理解
  • 深入解析:PVE环境对网口和wifi的配置
  • JMX 远程连接
  • P1016 [NOIP 1999 提高组] 旅行家的预算 方法全解
  • GameInfo.dll文件免费下载,系统软件文件缺失重新下载补回
  • WPF AutoUpdater 实现自动更新 - microsoft
  • CPU缓存行(Cache Line)和MESI协议
  • 33