递归求全排列
如果现在有六个数字1 2 3 4 5 6,请列举出其所有的排列可能。 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。显然,这是一个全排列问题。 全排列问题是递归的代表题型。 递归思想 如果我想对从1到6的六个数字做全排列,我可以: 首先,我固定第一个数字…
洛谷P5732 杨辉三角
给出 n(n≤20),输出杨辉三角的前 n 行。 输入样例 6 输出样例 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 思路 规律就是(x,y)处的数字应该等于(x,y-1)和(x-1,y-1)两处数字的和。比如第三行第二个数字2是第二行的两个1的和。 开一个二维数组,不要第0行和0列,初始就给0,初始化指…
洛谷P5731 蛇形方阵
给出一个不大于 9 的正整数 n,输出 n×n 的蛇形方阵。 从左上角填上 1 开始,顺时针方向依次填入数字,如同样例所示。注意每个数字有都会占用 3 个字符,前面使用空格补齐。 输入样例 4 输出样例 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 思路 这一个方阵可以看做一个二维数组,可以利用二维数组来储存各个位置…
洛谷P2181 对角线
对于一个 n 个顶点的凸多边形,它的任何三条对角线都不会交于一点。请求出图形中对角线交点的个数。 思路 如果从数学的角度上去思考这一问题, 一个交点必然只能有两条对角线确定,因为任何三条对角线都不会交于一点. 那么问题就是,我们能在一个n顶点凸多边形里面取到几条对角线呢? 显然, 两点确定一条直线, n个顶点里面我们只需要看能取多少组"4…
四皇后问题(暴力穷举)
今天老师上课讲解n皇后问题,提出一个比较简单的问题:如何用穷举法来解决四皇后问题。 由于我太菜了,用了比较长的时间来解决这个问题。emmmm,在一顿反思之后,决定总结一下。 四皇后问题 皇后可以吃掉棋盘上其所在行、列以及对角线上的所有旗子。如果有4和皇后,如何摆放才能使其在一个 4*4 的棋盘上共存呢? 思路 考虑到每个皇后可以吃掉其所在行上的所有…
筛法求质数 之 埃式筛
现在有这样的一个题目 输入格式 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式 对于每次询问输出个数t,如l或r∉[1,m]输出 ERRER 范围 1<=n<=1000 1<=m<=1000000 -10^9<=l<=r<=10^9 1<=t<=10000…
谁的程序更厉害?——时间复杂度浅谈
怎么看谁的程序更厉害呢? 如果我让两个人为了解决同一个问题,写了两个不一样的程序,但是这两个程序都能办成同一件事,我应该选择谁的程序呢? 也就是说,我们需要一种东西,这种东西能衡量两个不同的程序谁更厉害。 解决这个问题最重要的问题就是,评判的标准是什么。 我们卡啥标准好呢? 程序在运行的时候消耗的最重要的两个硬件,一个是CPU,一个是内存。也就是程…
在新生群里甚至可以聊C语言
最近有幸考上大学了,耶,终于从高中熬出来了。 然后欣然加了我们的新生群。 新生群里首先是一堆学长和新生在群相册爆照,我不以为意,因为很明显,我的颜值才应该是最高的。 打开群相册以后我发现,emmmm,开学以后可能这个学校只有我是死肥宅了。 今天中午吃饭的时候想开空调,拿手机正准备打开遥控器,突然发现QQ又99+了,看了一下未读信息,发现新生群聊的很…
玩一下Lambda和StreamAPI
什么东西会了的话就很简单,对于不会的人永远就是非常难。 之前我一直说Lambda太反人类,这玩意儿真难,淦。 之前跟海螺dalao和仓鼠dalao一直吐槽Lambda忒难了,这啥东西都是,他们两个人没有例外都用同一句话怼回我 ——这有啥难的。 今天下JDK的时候猛然发现,其实Java已经出Java14了。Java8都出了老久了,但是自己还没摸清楚这…
浅谈Java的面向对象
这一部分的内容是我曾经写过的一篇教程的一部分 Java程序的运行 Java是一门编程语言。 用Java编写应用的最大好处就是写一次就能在多个平台运行。 例如有些用户是Windows用户,有些玩家用的可能是苹果电脑,我们不至于为多个操作系统都单独做一份应用,即可做出各个平台下的产品。 我们的电脑一开始是没有Java程序的运行环境的(这个运行环境叫JV…