摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1060 思路: 令M=N^N; 分别对等式两边取对数得 log10(M)=N*log10(N),得M=10^(N*log10(N)); 令N*log10(N)=a+b,a为整数,b为小数; C函数:log 阅读全文
摘要:
https://blog.csdn.net/wlxsq/article/details/49717209 阅读全文
摘要:
大数除法 不同于一般的模拟,除法操作步数模仿手工除法,而是利用减法操作实现的。 其基本思想是反复做除法,看从被除数里面最多能减去多少个除数,商就是多少。 逐个减显然太慢,要判断一次最多能减少多少个整的10的n次方。 以7546除23为例。 先减去23的100倍,就是2300,可以减3次,余下646。 阅读全文
摘要:
首先说一下乘法计算的算法:同样是模拟人工计算时的方法。 从低位向高位乘,在竖式计算中,我们是将乘数第一位与被乘数的每一位相乘,记录结果之后,用第二位相乘,记录结果并且左移一位,以此类推,直到计算完最后一位,再将各项结果相加,得出最后结果。计算的过程基本上和小学生列竖式做乘法相同。为编程方便,并不急于 阅读全文
摘要:
思路: 和大数加法是一样的,只不过加变成了减。 阅读全文
摘要:
最常规的大数加法 (两个数都是非负的整数) 思路: 用字符串的方式去存储我们需要计算的数 ,但是要注意的一点就是我们是倒过来存储这个大数的 比如: 123456789 我们存储的时候是存成 987654321 为什么要这么干? 我觉得是为了便于后面我们的进位操作吧 最常规的大数加法 (两个数都是非负 阅读全文
摘要:
题目链接:http://poj.org/problem?id=3984 思路: 这道题的难点我觉得主要是在记录路径上面。 我们不能去记录当前的步数的走的坐标(x,y) ,因为这样会被后面的覆盖。 所以我们记录的应该是前一步所走的 具体代码: 阅读全文
摘要:
题目链接:http://poj.org/problem?id=3414 思路: 因为有六种操作,所以六种操作中合法的都加入队列中BFS 如何去输出路径呢? 我们不妨设一个string数组,它的索引就和我们的步数有关,然后按顺序输出就可以了。 之后有一道题的记录路径的方式也比较巧妙:poj 3984 阅读全文
摘要:
题目链接:http://poj.org/problem?id=3087 题目大意:给你一个字符串s1、一个字符串 s2 和一个期望得到的字符串 ,每次先放一个s2 再放一个 s1 ,得到一个新的字符串,然后取这个新字符串的前一半为s1 后一半为 s2 问最少经过几次变换可以得到期望的字符串 思路: 阅读全文
摘要:
题目链接:http://poj.org/problem?id=3126 题目大意:给你一个四位数N 和 一个四位数M ,从 N -> M 每次只可以改变一个四位中的任何一位数,但是改变后的数必须是素数,问你最少可以经过多少步使 N 变成 M 思路: 判断素数的话直接利用埃筛就可以了,因为只能改变一位 阅读全文