摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495 题目大意: 给你两个杯子还有一瓶可乐,问你可不可以通过杯子以及可乐之间互相倒来倒去 使最后两个人喝到相同的可乐,注意杯子没有刻度 思路: 这道题很像曾经做过的小学题目,我们不妨把所有情况都列举出来 阅读全文
posted @ 2019-07-16 21:00 _Ackerman 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 题目链接: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 阅读全文
posted @ 2019-07-15 22:08 _Ackerman 阅读(255) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/wlxsq/article/details/49717209 阅读全文
posted @ 2019-07-15 22:03 _Ackerman 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 大数除法 不同于一般的模拟,除法操作步数模仿手工除法,而是利用减法操作实现的。 其基本思想是反复做除法,看从被除数里面最多能减去多少个除数,商就是多少。 逐个减显然太慢,要判断一次最多能减少多少个整的10的n次方。 以7546除23为例。 先减去23的100倍,就是2300,可以减3次,余下646。 阅读全文
posted @ 2019-07-15 22:01 _Ackerman 阅读(5031) 评论(0) 推荐(3) 编辑
摘要: 首先说一下乘法计算的算法:同样是模拟人工计算时的方法。 从低位向高位乘,在竖式计算中,我们是将乘数第一位与被乘数的每一位相乘,记录结果之后,用第二位相乘,记录结果并且左移一位,以此类推,直到计算完最后一位,再将各项结果相加,得出最后结果。计算的过程基本上和小学生列竖式做乘法相同。为编程方便,并不急于 阅读全文
posted @ 2019-07-15 21:51 _Ackerman 阅读(629) 评论(0) 推荐(0) 编辑
摘要: 思路: 和大数加法是一样的,只不过加变成了减。 阅读全文
posted @ 2019-07-15 21:29 _Ackerman 阅读(1179) 评论(0) 推荐(0) 编辑
摘要: 最常规的大数加法 (两个数都是非负的整数) 思路: 用字符串的方式去存储我们需要计算的数 ,但是要注意的一点就是我们是倒过来存储这个大数的 比如: 123456789 我们存储的时候是存成 987654321 为什么要这么干? 我觉得是为了便于后面我们的进位操作吧 最常规的大数加法 (两个数都是非负 阅读全文
posted @ 2019-07-15 21:13 _Ackerman 阅读(11426) 评论(3) 推荐(4) 编辑
摘要: 题目链接:http://poj.org/problem?id=3984 思路: 这道题的难点我觉得主要是在记录路径上面。 我们不能去记录当前的步数的走的坐标(x,y) ,因为这样会被后面的覆盖。 所以我们记录的应该是前一步所走的 具体代码: 阅读全文
posted @ 2019-07-15 00:25 _Ackerman 阅读(735) 评论(0) 推荐(1) 编辑
摘要: 题目链接:http://poj.org/problem?id=3414 思路: 因为有六种操作,所以六种操作中合法的都加入队列中BFS 如何去输出路径呢? 我们不妨设一个string数组,它的索引就和我们的步数有关,然后按顺序输出就可以了。 之后有一道题的记录路径的方式也比较巧妙:poj 3984 阅读全文
posted @ 2019-07-15 00:22 _Ackerman 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3087 题目大意:给你一个字符串s1、一个字符串 s2 和一个期望得到的字符串 ,每次先放一个s2 再放一个 s1 ,得到一个新的字符串,然后取这个新字符串的前一半为s1 后一半为 s2 问最少经过几次变换可以得到期望的字符串 思路: 阅读全文
posted @ 2019-07-15 00:12 _Ackerman 阅读(224) 评论(0) 推荐(0) 编辑