sbw Blog - 算法设计
  • 来源: sbw Blog | 浏览: 2452 | 评论: 0 | 时间: 2020-02-23
    做了道蓝桥杯算法题:赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。 假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。atm想计算一下有多少种不同的可能的垒骰子方式。两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。 由于方案数可能过多,请输出模 10^9 + 7 的结果。
  • 来源: sbw Blog | 浏览: 1574 | 评论: 2 | 时间: 2019-08-09
    “Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.”——这是 LeetCode 上的一道 Hard 级别的题,是说将多个已经排序的有序序列合并成一个大的有序序列。使用优先队列的方式完成了这个题目,时间应该是 O(nm)。
  • 来源: 石博文博客 | 浏览: 1915 | 评论: 0 | 时间: 2019-03-24
    POJ 1007 这个题是一个难度一般的算法题,核心是要计算每一个字符串的权值然后累加并排序。在本题中,这个权值是指为字符串中的每一个字母计算它后面有多个个字母比它小,即发生了多个次“反转”。从这个描述的一般认识来看,这是个 N^2 复杂度的模拟问题,核心在于算法优化及找模型。但由于题目的测试数据比较简单,使用 N^2 复杂度的简单方法也可以很容易通过。这就导致了这个题目的实际比赛难度其实很低。这里从解题思路及推导过程给大家做一个线性复杂度,O(N) 解题方法的分享。
  • 来源: 石博文博客 | 浏览: 2136 | 评论: 0 | 时间: 2019-03-21
    POJ 1005,船屋。这是一道比较简单的几何相关的计算题,只需要推导出公式即可轻松解决。不过这个题的英文描述理解起来挺抽象,大概意思是:从坐标(0, 0)开始,有一个圆形的区域,第1年的时候,这个圆形的面积为0。这个圆形每年扩大,每年扩大的面积是50,问给定一个坐标(x, y),这个圆形多久能覆盖到这个坐标。
  • 来源: 石博文博客 | 浏览: 1771 | 评论: 0 | 时间: 2019-03-19
    POJ 1003 Hangover,这道题的意思是说有一叠卡片放在桌子的边缘,要求卡片尽可能的有更多的部分伸出到空中,但卡片整体又不能掉下去。那么在只有 1 张卡片的时候,是一半在桌子上,一半在空中,伸出去的长度是 1/2。当有两张卡片时,最多能伸出 1/2 + 1/3 = 5/6。当 n 张卡片堆叠起来时,最多伸出的长度即为 1/2 + 1/3 + ... + 1/(n+1)。先不说这个公式是不是符合物理规律,从算法上来讲是一道很简单的模拟题,按照题目所给出的计算公式递推计算结果即可。
  • 来源: 石博文博客 | 浏览: 4793 | 评论: 4 | 时间: 2017-01-24
    在 Leetcode 上看到一个题(原题地址),最长无重复子串。当时看的第一眼觉得或许可以用动态规划,今天空闲时间实现了一下。
  • 来源: 石博文博客 | 浏览: 5444 | 评论: 0 | 时间: 2016-05-22
    素数(也叫质数)是个神奇的东西,它的定义是“如果一个数只有 1 和它本身两个约数,那么它就是一个素数”。而在各种程序算法中,也经常会出现素数的身影。那么我们来讨论一下常用的那些素数生成的小算法。
  • 来源: 石博文博客 | 浏览: 6333 | 评论: 10 | 时间: 2016-03-02
    这九个数字组成一个分数,其值恰好为1/3,如何组法?这是一个第一眼看上去非常简单的问题,但编程起来还是需要一点点技巧的。
  • 来源: 石博文博客 | 浏览: 3835 | 评论: 0 | 时间: 2014-03-22
    一根面条,从中间切一刀,可以得到2根,若先对折一下再切,可以得到3根,若对折2次再切,可以得到5根面条,现在问若对折10次后再切,可以得到几根面条?
  • 来源: 石博文博客 | 浏览: 8100 | 评论: 4 | 时间: 2014-01-17
    Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路。道路被用来连接N个牧场,牧场被连续地编号为1到N。每一个牧场都是一个奶牛的家。FJ计划除去P条道路中尽可能多的道路,但是还要保持牧场之间 的连通性。你首先要决定那些道路是需要保留的N-1条道路。
  • 来源: 石博文博客 | 浏览: 9167 | 评论: 4 | 时间: 2013-11-19
    有n个格子,从左到右放成一排,编号为1-n。共有m次操作,有3种操作类型:1.修改一个格子的权值,2.求连续一段格子权值和,3.求连续一段格子的最大值。对于每个2、3操作输出你所求出的结果。
  • 来源: 石博文博客 | 浏览: 6709 | 评论: 2 | 时间: 2013-11-04
    本题的要求就是请你编程判定:对给定的m x n 的格子中的整数,是否可以分割为两个部分,使得这两个区域的数字和相等。如果存在多种解答,请输出包含左上角格子的那个区域包含的格子的最小数目。如果无法分割,则输出 0。
  • 来源: 石博文博客 | 浏览: 6890 | 评论: 0 | 时间: 2013-10-29
    203879 * 203879 = 41566646641,这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。具有这样特点的6位数还有一个,请你找出它!---蓝桥杯2013年C++A组第2题-排它平方数.