UVA 1583(p52)----Digit Generator
2016-02-29 11:26
211 查看
#include<bits/stdc++.h> using namespace std; const int maxn=1e5+50; int ans[maxn]; void prepare() { memset(ans,0,sizeof(ans)); for(int i=0;i<maxn;i++) { int x=i,y=i; while(x>0) { y+=x%10; x/=10; } if(!ans[y]||ans[y]>i) ans[y]=i; } } int main() { int n; prepare(); scanf("%d",&n); for(int i=0;i<n;i++) { int x; scanf("%d",&x); printf("%d\n",ans[x]); } return 0; }
题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=448&page=show_problem&problem=4458
题解:枚举1e5内的所有正整数,标记m加上m的各数字之和得到的数有一个生成元是m并不断更新最优解,最后查表即可。
相关文章推荐
- 并发编程之一:同步方法和同步块
- Linux下常用的硬件信息查看命令
- Html5文件操作(1)
- 第一个py程序:删除30天前的日志
- samba
- 带着问题学习Android中View的layout布局和draw绘制
- Python中用feedparser解析RSS
- JAVA中int、String的类型转换
- spring整合dubbo-2.5.3(使用TCP广播或者zookeeper 暴露和发现服务)
- 画图片
- 游程编码问题
- Linux关闭防火墙
- 解决SharePoint2013产品过期问题
- Nginx在安装过程经常出现的问题
- bzoj 1015: [JSOI2008]星球大战starwar
- imooc movie
- iOS开发--xcode快捷键
- iOS打电话
- STP协议的形象化理解
- iOS开发之首次启动引导页的两种处理方法简析