boj-算法题目
文章平均质量分 62
deerluffy
这个作者很懒,什么都没留下…
展开
-
A-B
Boj上的A-B题目: 首先,看到这个题,应该觉察到是一个大数运算的问题,如果是实际开发,对性能没什么要求,无需自己写,因为java等语言里已经能够支持大数运算。 其次,据说十年前的大牛的补码解决方案就已经完美解决了这个问题。但我还是只能按照普通的逻辑来做,需要注意的有以下几点: 1.用无符号字符数组存储大数。 2.对输入判断做加法还是做减法。 3. 加法,对应位置字符直接减字符0转换为原创 2012-11-30 16:09:00 · 333 阅读 · 0 评论 -
03-guess-boj
boj上的guess: 写了一天终于调出来,题目本身不难,主要是让你预测一个排名是否可行,可行的话输出最后一名的最高得分。 这个题目主要考虑以下两点: 1.如何考虑是否可行及最高得分的计算。我用的方法依然比较笨的,即从第一名开始,记录其最高分为三题总和,之后每个人有8中可能得分(0,。。。),按排名顺序,计算第二名最高得分,这里主义考虑可能与第一名分数相同,只要该分数在其8种之内,且id小于原创 2012-11-30 16:25:01 · 296 阅读 · 0 评论 -
04-permutation-boj
题目大意: 背景:给定一个数n,那么从 1-n有你n!中排列。即n个数的全排列。现在规定这 n! 种排列的顺序。如 给定数字3。那么它的按序全排列是: 1 2 3, 1 3 2, 2 1 3, 2 3 1, 3 1 2 , 3 2 1 问题:先给定一个数字n,和它的其中一个排列,求这个排列之后的第k个排列。如给定: n = 3. 排列: 2原创 2013-08-03 11:57:20 · 438 阅读 · 0 评论 -
05-flip game-boj
背景描述: 翻转游戏:在一个4x4的格子。每个格子里一个棋子,棋子有黑白两面。 规则:每次翻转一个棋子,该棋子翻转的同时,要翻转其相邻的所有棋子,即左侧、右侧、上侧、下侧。因此每次翻转可能翻转3-5次棋子。多次翻转直到所有棋子的颜色一样则完成。 问题:给你一个任意时刻的棋盘的棋子状态图,求到达全黑或全白的最短步数。例子如下: Sample In原创 2013-08-04 16:18:39 · 405 阅读 · 0 评论 -
07-Fence Repair-boj
背景:一个农场主要修篱笆,需要N段木头(1 例如: 需要3段木头,每段长为8、 5 、8 。第一次据的时候总长度为8+5+8 = 21,收费21 ,假设锯为8 和13 两段,再将13那一段剧为5和8,收费13。总收费为34 问题:求该农场主锯完木头的最低收费是多少。 分析: 这个题,反过来想,N段木头的数组,每次找两个最小的段数组,组合后放入原队列,继续组合。其实就是哈夫曼树。但是原创 2013-08-06 17:14:19 · 401 阅读 · 0 评论 -
08-Rightmost Digit
题目: 给定一个整数N, 求N^N的十进制表示中最右端的那个数。(这里^表示幂运算) 分析:直接的想法是求出N^N,但是这样几乎百分百会溢出。 从0到9求一下各自的幂的最右数字的变化,发现有时循环重复的,而N的最右端数字只与其个位数有关,因此,这里就是求个位数k的N次幂的最右端数字,可以把它们都枚举出来然后解答。 个人代码如下: #include using原创 2013-10-05 17:44:15 · 566 阅读 · 0 评论