题目描述-->p1900 自我数

本文转自@keambar

转载已经原作者同意

分析:

     思路还是比较好给出的:
用类似筛选素数的方法筛选自我数。 但是要注意到题目限制的空间仅有4M,不够开10^7 那么大的数组.
于是进一步分析问题我们发现每一次拓展出来的数最多比原数大63! 这是由于最多不过7位数,假设每一位都是9的话,拓展出来的数才大 7*9=63. 所以我们,对拓展出来的数取模,再用数组存下来。 至于输出自我数,经过测试.
在SGU的数据里自我数的答案没有超过10^6
刚好用掉4M的空间 ⊙﹏⊙b汗 最保险的方法还是仅将需要的自我数号码存下来,
排序后用二分查找判断当前找到的数是否是需要存下的.
最后再将存下的数按照读入的顺序输出.

原作者代码

#include<cstdio>
int n, m, k;
bool pd[100];
int f[1000000], tol;
int Find (int x) {
for (k = 0; x != 0; x /= 10)
k += x % 10;
return k;
}
void init() {
int i, j;
tol = 0, j = 0;
for (i = 1; i <= n; i++) {
if (!pd[i % 100]) f[++tol] = i;
else
pd[i % 100] = false;
//这里用了个小技巧,大大减少取模的次数,很容易想明白
if (i % 10 == 0) j = i + Find (i);
else
j += 2;
pd[j % 100] = true;
}
}
int main() {
scanf ("%d%d", &n, &m);
init();
printf ("%d\n", tol);
for (int i = 1; i <= m; i++) {
scanf ("%d", &k);
printf ("%d ", f[k]);
}
return 0;
}

本人辣鸡代码就不放了emmm

应原作者要求:本题亦可以在SGU上找到

//不过,我没有找到链接 emm

[转载]数学【p1900】 自我数的更多相关文章

  1. 洛谷 P1900 自我数

    P1900 自我数 题目描述 在1949年印度数学家D. R. Daprekar发现了一类称作Self-Numbers的数.对于每一个正整数n,我们定义d(n)为n加上它每一位数字的和.例如,d(75 ...

  2. P1900 自我数

    题意: 对于每一个正整数n,我们定义d(n)为n加上它每一位数字的和. 例如,d(75)=75+7+5=87.给定任意正整数n作为一个起点,都能构造出一个无限递增的序列:n, d(n), d(d(n) ...

  3. luogu1900 自我数

    分享一个非正解的做法 本题解内存最低(\(\le1\rm MiB\)) 但是不开O2会tle 思路:每个数字仅会更新出1个新的数字,而且这个新数字比旧数字最多也就大70多.所以这里还是利用" ...

  4. 【转载】nginx 并发数问题思考:worker_connections,worker_processes与 max clients

    注:这个文章主要是作者一直在研究nginx作为http server和反向代理服务器时候所谓最大的max_clients和 worker_connections的计算公式, 其实最后的结论也没有卡上公 ...

  5. 【数学建模】数模day13-灰色系统理论I-灰色关联与GM(1,1)预测

    接下来学习灰色系统理论. 0. 什么是灰色系统? 部分信息已知而部分信息未知的系统,我们称之为灰色系统.相应的,知道全部信息的叫白色系统,完全未知的叫黑色系统. 为什么采用灰色系统理论? 在给定信息不 ...

  6. hdu 5312 Sequence(数学推导——三角形数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5312 Sequence Time Limit: 2000/2000 MS (Java/Others)  ...

  7. NOIp 数学 (小学奥数)

    Basic knowledge \[ C_n^m=\frac{n!}{m!(n - m)!} \] 快速幂 // Pure Quickpow inline int qpow(int n, int m, ...

  8. [转载]爬虫的自我解剖(抓取网页HtmlUnit)

    网络爬虫第一个要面临的问题,就是如何抓取网页,抓取其实很容易,没你想的那么复杂,一个开源HtmlUnit包,4行代码就OK啦,例子如下: 1 2 3 4 final WebClient webClie ...

  9. 一些对数学领域及数学研究的个人看法(转载自博士论坛wcboy)

    转自:http://www.math.org.cn/forum.php?mod=viewthread&tid=14819&extra=&page=1 原作者: wcboy 现在 ...

随机推荐

  1. GYM - 100814 C.Connecting Graph

    题意: 初始有n个点,m次操作.每次操作加一条边或者询问两个点第一次连通的时刻(若不连通输出-1). 题解: 用并查集维护每个点所在连通块的根.对于每次加边,暴力的更新新的根. 每次将2个块合并时,将 ...

  2. BZOJ2819 Nim 【dfn序 + lca + 博弈论】

    题目 著名游戏设计师vfleaking,最近迷上了Nim.普通的Nim游戏为:两个人进行游戏,N堆石子,每回合可以取其中某一堆的任意多个,可以取完,但不可以不取.谁不能取谁输.这个游戏是有必胜策略的. ...

  3. POJ3450 Corporate Identity 【后缀数组】

    Corporate Identity Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 7662   Accepted: 264 ...

  4. Topcoder SRM579 1000pts

    石头剪刀布QAQ 一看是个很油的概率dp 首先一看你很快能得出状态的表示F[i][r][p][s] 然后只要考虑r,p,s出现的次数来进行概率dp就好了 具体实现的时候细节很多(少) 如果预处理一下组 ...

  5. 遇到问题---java---myeclipse中maven项目引用另一个导致的resource文件混乱的问题

    遇到情况 情况是这样的,我们在构建项目时,经常会把一些公用的类和配置提取出去,作为一个公共项目.然后把公共项目作为一个jar包构件引入我们当前的项目中. 引入方式是 <dependency> ...

  6. 如何写出规范的JavaScript代码

    作为一名开发人员(WEB前端JavaScript开发),不规范的开发不仅使日后代码维护变的困难,同时也不利于团队的合作,通常还会带来代码安全以及执行效率上的问题.本人在开发工作中就曾与不按规范来开发的 ...

  7. codeforces 719C. Efim and Strange Grade

    C. Efim and Strange Grade time limit per test 1 second memory limit per test 256 megabytes input sta ...

  8. tomcat部署多个项目,通过域名解析访问不同的网站

    转摘自:http://qinyinbolan.blog.51cto.com/4359507/1211064 说明: 1.首先需要有多个域名,同时指向一个IP地址. 例如:域名:www.bbb.com, ...

  9. 经典DFS问题 oilland 连通块

    #include "iostream" #include "cstdio" using namespace std; ][]={{,},{,-},{,},{-, ...

  10. Python基础(1)_初识Python

    一.为什么要编程 解放人力:让机器按照人们事先为其编写好的程序自发地去工作 二.什么是编程语言 编程语言就是程序员与计算机之间沟通的介质:程序员把自己想说的话用编程语言写到文件里,这其实就开发了一个程 ...