10 2018 档案
摘要:桶排序思想 桶排序的思想就是把数组分到有限的桶中,然后再分别排序,最后将各个桶中的数据有序的合起来,具体如下: (1)设计好桶的大小和桶的个数 (2)遍历数组,把每个元素放到对应的桶中 (3)对每个桶分别排序(可以递归使用桶排序,也可以使用其它排序) (4)遍历桶中的数据,将数据有效的合起来 复杂度
阅读全文
摘要:问题描述 给定字符串,求出该字符串的所有组合,即它的所有字串。例如“abc”,应该得到"a","b","c","ab","ac","bc","abc"。 思路一 如果没有要求按长度从小到大输出,可以逐位考虑是否选取,代码如下: 思路二 如果要求按长度从小到大输出,我们可以先考虑长度为len的字串的所
阅读全文
摘要:游戏介绍 井字棋,英文名叫Tic-Tac-Toe,是一种在3*3格子上进行的连珠游戏,和五子棋类似。然后由分别代表O和X的两个游戏者轮流在格子里留下标记(一般来说先手者为X),任意三个标记形成一条直线(包括行、列、对角线、反对角线),则为获胜。 解决策略 重点在于电脑方如何下棋,我们采取估计棋局每个
阅读全文
摘要:问题描述 Philippe Flajolet和Robert Sedgewick在2009年提出了“百囚犯问题(100 prisoners problem)。 在某个法制不健全的国家,监狱中有编号从1到100的100名囚犯,监狱长给了他们最后一次机会: 一个房间里有100个抽屉,监狱长随意把1到100
阅读全文
摘要:问题描述 POJ 1700 在一个漆黑的夜里,N为旅行者来到狭窄而没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,N个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,N人所需要的时间已知;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单
阅读全文
摘要:农夫过河问题 问题描述 一个农夫带着一头狼、一头羊、一颗白菜过河。他面前只有一条船,只能容纳他和一件物品,只有农夫会划船。如果农夫不在场,狼会吃羊、羊会吃白菜,农夫在场则不会。求将所有物品运到对岸的方案。 解题思路 根据物品的位置定义状态,若在左岸记为1,右岸记为0,于是最终方案就是(1,1,1,1
阅读全文
摘要:牛顿迭代法(Newton's method) 又叫“牛顿-拉弗森方法”(Newton-Raphson method),它是一种在实数域和复数域上近似求解方程的方法,方法是使用f(x)泰勒级数前几项来寻找f(y) = 0的根。 原理 对于非线性方程同样适用 总之,牛顿迭代公式: 应用 求某些方程的根
阅读全文
摘要:准备 通过Logisim的官网下载适合你机器的Logisim的软件,启动Logisim应用程序(Logisim可能有点bug,如果程序运行诡异,可能内部已经奔溃,最好的解决方法是重新启动它)。 Logisim 高阶使用 先介绍两个有用的Logisim的功能,对后续实验会很有帮助。 Tunnel Tu
阅读全文
摘要:题目 构造一个由串联和并联构成的纯电阻电路,使得该电路的等效电阻为p/q,其中(p,q) = 1。要求输出n,表示节点数,m表示电阻个数,m行每行ui,vi,wi,表示ui和vi之间要连上一个电阻为wi,然后输出s,t表示接入节点和接出节点。 原题链接:https://www.nowcoder.co
阅读全文
摘要:题目 原题链接:https://www.nowcoder.com/acm/contest/106/L 在100000 * 10000的空地上,有n个时间点,每个时间点会在(xi,yi)上种一棵树。 定义绿色:被树包围的空地的个数。 问每个时间点之后绿色为多少。如图: 思路 逆向求解,从(0,0)位置
阅读全文
摘要:题目 原题链接:http://codeforces.com/problemset/problem/884/D 现有一堆小石子,要求按要求的数目分成N堆,分别为a1、a2、...an。具体的,每次选一个堆(其重量为代价),分成2或3堆。求最小的可能代价。 思路 我们反向考虑,就是一个不断合并的过程。当
阅读全文
摘要:题目 有一个含有N个未知数的方程如下: x1^x2^...^xn= V,给定N,V,再给定正整数a1,a2,...an满足1≤ai≤9且∏Ni=1(ai+1) ≤ 32768,请输出所有满足0≤xi≤ai的解。 思路 枚举每个xi的取值,显然,写成N个循环肯定可以,但不如递归简洁。 复杂度 递归的写
阅读全文
摘要:题目 数轴上有M个点a1、a2、...am,另有一个数列p1、p2、...pn,(1 ≤ pii ≤ M)。 给定d1、d2、...dn,对所有的 i (1 ≤ i ≤ n),已知 |api+1 - api| = di,求M得最少可能值。(1 ≤ n ≤ 25 ,1 ≤ ai ≤ 105) 原题链接
阅读全文
摘要:题目 输入n个矩阵的维度和一些矩阵链乘表达式,输出乘法的次数。如果无法进行乘法,输出error.假定A是m*n矩阵,B是n*p矩阵,则乘法次数为m*n*p;如果A的列数不等于B的行数,则乘法无法进行。 解题思路 本体的关键是解析表达式。本题的表达式比较简单,可以用一个栈来完成:遇到字母时直接入栈,遇
阅读全文
摘要:表达式 简单的表达式只包含操作数、+、-、*、/、(、)。根据运算符与操作数的位置关系,可分为前缀表达式、中缀表达式、后缀表达式。 我们日常的算术运算用的就是中缀表达式,对中缀表达式的求值过程就是先将中缀表达式转换成后缀表达式,然后对该后缀表达式求值。(其实这两个步骤不必显式的表现出来,可以合二为一
阅读全文
摘要:区别与联系 区别 DFS多用于连通性问题因为其运行思想与人脑的思维很相似,故解决连通性问题更自然,采用递归,编写简便(但我个人不这样觉得。。。) DFS的常数时间开销会较少。所以对于一些能用DFS就能轻松解决的,为何要用BFS? 一般来说,能用DFS解决的问题,都能用BFS。 BFS多用于解决最短路
阅读全文
摘要:随机数的生成 对程序测试时,经常需要生成一些随机数。随机数的生成可使用函数 rand。 注:1、如果没有使用函数srand进行初始化,那么每次运行程序时将得到同样的随机数序列。 2、rand的返回值是一个 [0,RAND_MAX] 的整数,RAND_MAX的值取决于库,但保证任何库中至少为32767
阅读全文
摘要:定义 从栈底元素到栈顶元素呈单调递增或单调递减,栈内序列满足单调性的栈。 原理 (1)当新元素在单调性上优于栈顶时(单增栈新元素比栈顶大,单减栈新元素比栈顶小),压栈,栈深+1; (2)当新元素在单调性与栈顶相同(新元素于栈顶相同)或劣于栈顶时(单增栈新元素比栈顶小,单减栈新元素比栈顶大),弹栈,栈
阅读全文
摘要:分支语句 注:VBA中等于号和赋值符号都是"=",但并不会冲突,只有在选择语句中“=”才表示是否相等 示例(交互型) 1、写好程序 2、设置动作 (View-->Toolbars-->Form Controls-->Toggle Design Mode-->Push Button) 3、绑定对应的宏
阅读全文
摘要:数据类型 VBA中的数据类型可分为两种 示例 String Single和Double 注:VBA注释符号是单引号 参考链接:https://www.guru99.com/vba-data-types-variables-constant.html
阅读全文
摘要:VBA Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。 人们常见的办公软件O
阅读全文
摘要:知识库 数据库(Database)和SQL,相信我们大部分人都非常非常熟悉。但是“知识库”可能知道的人就要相对少一些。 知识库是一个相对比较新的概念,它其实是一堆“三元组”(类似于主-谓-宾)的组合,从空间上看是一个巨大的、由“物体”组成的一张图。 现有的比较有名的知识库有DBpedia、WikiD
阅读全文
摘要:Valgrind Valgrind作为一个免费且优秀的工具包,平时大部分人可能都是使用valgrind检测内存问题,如内存泄露,越界等。 Valgrind工具包包含多个工具,如Memcheck,Cachegrind,Helgrind, Callgrind,Massif。下面分别介绍个工具的作用: M
阅读全文
摘要:数独 数独是一种逻辑游戏,玩家需要根据9x9盘面的已知数字,推理出剩余所有空格的数字,并满足每一行、每一列和每个粗线宫(3x3)内均含1~9,不重复。 MATLAB中有关函数 M = dlmread(filename,delimiter) 使用指定的分隔符,将该文件的数据读取到矩阵M中,并将重复的分
阅读全文
摘要:排列 在暴力求解中,常常通过枚举所有的可能排列来得到答案,所有如何生成所有的排列也就十分重要。 生成1~n的排列 采用递归的思想,从前往后逐位进行考虑。 其实上面这个为了保证字典序,时间复杂度实际变成O(nn)。 可重集的排列 即待排列的数组中有相同的元素,得到所有的排列。 实际上,若不要求字典序,
阅读全文
摘要:生命游戏 规则 每个细胞有两种状态——存活或者死亡,每个细胞只与以其自身为中心的细胞产生互动。 当细胞为死亡状态,若周围有3个存活细胞,则该细胞变成存活状态(模拟繁殖) 当细胞为存活状态,若周围有2个或3个存活细胞,保持原样 若周围有3个以上存活细胞,该细胞变成死亡(模拟极度拥挤) 若周围有低于2个
阅读全文