- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 sudoku
项目名称数独游戏(sudoku)项目概述数独是源自18世纪瑞士的一种数学游戏。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3*3)内的数字均含1-9,不重复。设计开发一个简单的安卓版数独游戏。项目要求设计完整的APP结构,包括以下页面引导页面主页面关卡选择页面游戏页面排行榜页面“关于”页面游戏共24关,每六个...
2019-12-30 13:31:46
295
原创 【数据结构与算法分析】3.27
多重表P.S. 每个结点包括四个域:于该结点关联的学生编号与该节点关联的班级编号该节点的下一个学生结点该节点的下一个班级结点模拟代码如下:/*输入:第一行为学生数量n,之后有n组数据第i组数据包括两行第一行表示学生i选了x门课程第二行有x个数,表示该学生所选课程编号。输出:输出每个班级注册的学生编号若某班级无学生注册则不输出*/#define _CRT_S...
2018-11-20 21:13:19
249
原创 【算法导论】9.1~9.2
顺序统计量对于一个集合(数组)最大值或最小值可以在n−1n-1n−1次比较内求得,即每次比较更新当前最小(大)值。若要同时求最大和最小值,可一对一对的比较,用较大的和maxmaxmax比较,较小的和minminmin比较选择问题:在一个集合内求第iii小的元素。采用分治算法:代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h...
2018-11-20 17:52:45
648
转载 【算法导论】8.1~8.4
本文转载于:https://www.cnblogs.com/ttltry-air/archive/2012/08/04/2623302.html计数排序,基数排序,桶排序等非比较排序算法,平均时间复杂度都是O(n)。这些排序因为其待排序元素本身就含有了定位特征,因而不需要比较就可以确定其前后位置,从而可以突破比较排序算法时间复杂度O(nlgn)的理论下限。计数排序(Counting sort...
2018-11-15 23:05:41
704
原创 【算法导论】7
快速排序代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int partition(int a[], int p, int r){ int t, i, j; /*随机化 int x = p + (rand() % (r - p)); t = a[r]; a[r] ...
2018-11-11 17:50:15
97
原创 【算法导论】6.1~6.5
堆排序时间复杂度:Θ(nlgn)Θ(nlgn)Θ(nlgn)代码:#define _CRT_SECURE_NO_WARNINGS #include&lt;stdio.h&gt;/*向下调整以维持最大堆的性质*/void siftdown(int a[], int x, int n){ int l, r, max, t; while (x &lt;= n / 2) { l ...
2018-11-08 16:41:04
215
原创 【算法导论】5.3
随机算法介绍两种将输入随机化的方法:随机排列数组设A[1...n]A[1...n]A[1...n]为原始输入。生成一个新数组P[1...n]P[1...n]P[1...n],其中Pi=random(1,n3)。P_i=random(1,n^3)。Pi=random(1,n3)。以PPP为基准对AAA进行排序。原址排列数组for i=1 to nsw...
2018-11-06 22:17:10
214
原创 【算法导论】4.2
矩阵乘法的 Strassen 算法朴素算法时间复杂度:Θ(n3)Θ(n^3)Θ(n3);一般分治算法:(1)A=[A11A12A21A23]&amp;nbsp;&amp;nbsp;B=[B11B12B21B23]&amp;nbsp;&amp;nbsp;C=[C11C12C21C23]A=\left[ \begin{matrix} A_{11} &amp;amp;amp; A_{12} \\ A_{21}
2018-11-06 00:48:52
302
原创 【算法导论】4.1-5
最大子数组和的线性时间算法线性算法通过迭代求解:先做以下规定:A[i...j]A[i...j]A[i...j]表示a[i...j]a[i...j]a[i...j]的最大子数组和。P[j]P[j]P[j]表示a[1...j]a[1...j]a[1...j]中包括a[j]a[j]a[j]的最大子数组和则:A[1...j]=max(A[1...j],a[j],P[j]+a[j])A[1...
2018-11-04 21:52:49
1164
原创 【算法导论】4.0~4.1
分治策略4.0分治策略用递归的方式求解问题,每层递归包括下面三个基本步骤:分解: 将问题分解成若干个子问题,子问题形式与原问题相同,但规模较小。解决: 递归地求解子问题,若子问题规模足够小,则停止递归,直接求解。合并; 将子问题的解合并成原问题的解。递归式的三种求解方法:代入法: 猜测+数学归纳法证明。递归树法: 将递归式转换为一棵树,节点表示递归调用产生的代价。然后用边界...
2018-10-31 22:06:26
164
原创 【算法导论】3.1~3.2
ΘΘΘ记号:渐近紧确界OOO记号:渐近上界ΩΩΩ记号:渐近下界ooo记号:非渐近紧确的上界ωωω记号:非渐近紧确的下界
2018-10-31 19:42:50
452
原创 【算法导论】2.3-7
【算法导论】2.3-7给定n个元素的集合S和一个x,判断是否存在两个元素属于S,且他们的和为x,要求时间复杂度ΘΘΘ(nlgn)。首先归并排序,时间复杂度ΘΘΘ(nlgn)然后设置两个标兵从最小处和最大处相向前行,每次计算两元素和,若等于x,停止;若小于x,小标兵前进;若大于x,大标兵后退。直到两标兵相遇,或找到和为x的两元素。时间复杂度ΘΘΘ(n)则总时间复杂度为ΘΘΘ(nlgn)。...
2018-10-31 16:38:14
476
原创 【算法导论】2.1~2.3
【算法导论】2.1~2.3(排序,分治)插入排序,用文中的列子 整理扑克牌 可以非常清晰地描述该算法。效率为 n² 伪代码如下:1 for j=2 to A.length2 key=A[j]3 i:=j-14 while i&gt;0 and A[i]&gt;key5 A[i+1]=A[i]6 ...
2018-10-30 23:21:44
185
原创 [CF]_[心得]_[877C]
斯拉瓦克扮演他最喜欢的游戏“和平闪电”。现在他正在一个非常具体的地图上飞行一架轰炸机。 正式地,地图是大小为1×n的方格域,其单元格从1到n编号,在每个单元格中可以有一个或多个坦克。斯拉瓦不知道坦克的数量和他们的位置,因为他飞得很高,但他可以在任何一个单元格中放一个炸弹。这个单元格中的所有坦克都将被损坏。 如果坦克第一次受到伤害,它会立即移动到相邻的一个单元之间(单元格n中的一个槽只能移动到单元
2017-10-27 23:02:00
355
原创 [CF]_[心得]_[870B]
话不多说先贴原题: 给定一个由n个整数组成的数组a1,a2,…,和整数k。您必须将数组拆分成k个非空的子段。然后,您将计算每个子段上的最小整数,并获取超过k个最小值的最大整数。你可以得到最大可能的整数是多少? 子段和阵列分裂的定义在注释中给出。 输入 第一行包含两个整数n和k(1≤k≤n≤105) - 数组a的大小和必须将数组拆分的子段数。 第二行包含n个整数a1,a2,…,an( -
2017-10-17 01:33:47
327
原创 [CF]_[心得]_[869B]
作为萌新,第一次在CF上的提交,经历了5次才通过。同时这种多次提交经历,说明在考虑问题是不够完备,如何在尽可能少的次数下AC(当然一次最棒)。问题本身理解起来,或者说完全不需要理解,,,见下图其实就是给定 a,b (a<=b), 求 b! / a! 的个位数字。算法的关键是 a,b 的取值。第一次,算法很直白,直接计算 b(b-1)(b-2)…a 每次累乘前后模10取个位,然而当
2017-10-13 23:35:14
184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人