自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 作业系统的爽点、痛点和痒点分析以及开源系统介绍

指用户在使用产品或服务时,遇到的让他们感到痛苦、不满、恐惧的问题,这些问题是用户迫切需要解决的,也是产品的基本功能和价值。指用户在使用产品或服务时,想要满足的虚拟自我,这些需求是用户的期望型需求,不是刚需,但能够提升用户的体验和满足感。指用户在使用产品或服务时,获得的即时满足,这些需求是用户的兴奋型需求,能够让用户感受到快乐、兴奋、成就感等,也是产品的创新和差异化的体现。

2023-11-10 22:41:01 266 1

原创 软件工程作业系统可行性分析

系统需收集的基本信息限于用户的姓名,学号,性别,课表等,以及一些公开的链接即可;当然,后期功能的拓展可能需要更多其它信息,这些都会在App的“用户需知”中征得用户的同意,且保证不会造成侵犯隐私,绝不会获取其它用户信息。现需要一款针对线下课堂手机作业以及评分功能的App,功能不多,针对性强,实用性高。:明确定义你进行可行性分析的具体目标,是为了评估一个新项目、业务扩展、投资决策,还是其他什么。:分析所需的技术、资源和运营流程,确定是否可行和可实施。:了解与项目相关的法律法规,确保项目的合法性和合规性。

2023-10-25 19:44:21 451 1

原创 数学之数论

高密度计算概念指参与运算的数大大超出了标准数据类型所能表示的范围的运算c/c++中,最大数据类型只有64位,如果需要处理更大的数,只能用数组来模拟,把大数的每一位存储在数组中java中,可以直接计算。有两个类:BigInteger 和 BigDecimal,分别表示大整数类和大浮点数类,存在于 java.math.* 包中(java虽然能处理大数,但对于规模过大的问题,java也不能做)例如:hdu 1024题:输入整数 N(0<=N<=10000),输出 N!java代

2021-03-03 22:24:20 466

原创 状态压缩 DP(旅行商问题)

概念简而言之:是处理复杂集合问题的 DP。每个状态 dp[i][j] 表示的不是一个有意义的数值,例如花费、价值、长度等,而是代表了集合的数量旅行商问题Traveling Saleman Problem, TSP:有 n 个城市,已知任何两个城市之间的距离(或者费用),一个旅行商从某城市出发,经过每一个城市并且只经过一次,最后回到出发城市,输出最短(或者路费最少)的线路小规模的 TSP 问题可以用状态压缩 DP 求解,复杂度是:O((2^n)(n^2)),能解决规模 n<=15 的问题

2020-11-09 23:24:05 971 1

原创 数位 DP

概念指对数字的“位”进行的与计数有关的 DP。一个数有个位、十位、百位等,数的每一位就是数位。数位用来解决与数字操作有关的问题,例如数位之和问题、特定数字问题等。问题特征是给定的区间超级大,不能用暴力的方法逐个检查,必须用接近 O(log(2)n)复杂度的算法解题思路:用 DP 对“数位”进行操作,记录已经算过的区间的状态,用后续计算中,快速进行大范围的筛选问题给定 m 和 n,0<m<=n<10^6,统计 [m, n] 范围内不含 ‘4’ 的数的个数(hdu20.

2020-11-05 10:17:53 350

原创 区间 DP

概念主要思想:先在小区间进行 DP 得到最优解,然后再利用小区间的最优解合并求大区间的最优解区间 DP,一般需要从小到大枚举所有可能的区间。在解题时,先解决小区间问题,然后合并小区间,得到更大区间,直到解决最后的大区间问题。合并的操作一般是把左、右两个相邻的子区间合并两个难点:枚举所有可能的区间、状态转移方程复杂度:一个长度为 n 的区间,它的子区间数量级为 O(n^2),每个子区间内部处理时间不确定,合起来复杂度会大于 O(n^2)。在编程时,区间 DP 至少需要两层 for 循环,第

2020-11-02 11:13:58 218

原创 DP 之最长递增子序列

最长递增子序列    最长递增子序列(Longest Increasing Subsequence, LIS)问题:给定一个长度为 N 的数组,找出一个最长的单调递增子序列。例如一个长度为 7 的序列 A={ 5,6,7,4,2,8,3 },它的最长单调递增子序列为 { 5,6,7,8 },长度为 4问题描述 解题思路    这一题可用贪心法 来做:假设发射了很多高度无穷大的导弹,在读入第 1 个炮弹时,一个导弹下

2020-10-27 16:12:33 485

原创 DP之最长公共子序列

概念    一个给定序列的子序列是指在该序列中删除若干元素后得到的序列。例如,X={ A, B, C, D, A, B},X 的子序列有 { A, B, C, B, A }、{ A, B, D}、{ B, C, D, B }等。子序列和子串是不同的概念,子串的元素是在原序列中连续的。    给定两个序列 X 和 Y,当另一序列 Z 既是 X 的子序列又是 Y 的子序列时,称 Z 是序列 X 和 Y 的一个公共子序列。最长

2020-10-22 16:18:18 449 1

原创 DP 之 0/1 背包

背包问题    有很多物体,重量不同、价值不同,以及一个容量有限的背包,选择一些物品装到背包中,问怎么装才能是装进背包的物品总价值最大    根据限定条件不同,可以将背包问题分为很多种,常见的有下面两种:如果每个物体可以切分,称为一般背包问题,用贪心法求最优解。如果每个物体不可分割,称为 0/1 背包问题。这种问题无法用贪心法求得最优解。0/1 背包问题     给定

2020-10-20 17:07:53 300 1

原创 基础 DP 之硬币问题

动态规划    动态规划(Dynamic Programming),简称 DP    算法思想:  DP 问题一般是多阶段决策问题,把一个复杂的问题分解为相对简单的子问题,再一个个解决,最后得到复杂问题的最优解;这些子问题是前后相关的,并且非常相似,处理方法几乎一样。把前面子问题的计算结果记录为“状态”,并存储在“状态表”中,后面子问题可以直接查找前面得到的状态表,(即用前面子问题的结果推导后续子问题的

2020-10-17 14:24:23 934 1

原创 分治法(归并排序,快速排序)

分治法    具体操作:  把原问题分成 k 个较小规模的子问题,对这 k 个子问题分别求解。如果子问题不够小,那么把每个子问题再划分为规模更小的问题。这样一直分解下去,直到问题足够小,很容易求出这些小问题的解为止    求解的问题特征:平衡子问题:子问题的规模大致相同,能把问题划分成大小差不多相等的 k 个子问题,最好 k=2,即分成两个规模相等的子问题。子问题规模相等的处理效率比子问题规模不等

2020-10-14 23:01:13 1660

原创 贪心法(Huffman编码、模拟退火)

贪心法    算法思想: 把整个问题分解成多个步骤,在每个步骤都选取当前步骤的最优方案,直到所有步骤结束;在每一步都不考虑对后续步骤的影响,在后续步骤中也不再回头改变前面的选择。简单地说,就是 “走一步看一步”    求解的问题需满足以下特征:最优子结构性质,即从局部最优能扩展到全局最优贪心选择性质。问题的整体最优解可以通过一系列局部最优的选择来得到常见问题1、活动安排问题(区间调度) &nbs

2020-10-11 20:34:56 1314

原创 Power Calculus (poj 3134) 及IDA* (DFS)

问题描述    给定数 x 和 n ,求 x^n,只能用乘法和除法,算过的结果可以被利用。问最少算多少次就够了。其中 n <= 1000

2020-09-28 20:34:27 242

原创 八数码问题(BFS)

问题描述    在一个3*3的的棋盘上放置编号为1~8的8个方块,每个占据一格,另外还有一个空格。与空格相邻的数字方块可以移动到空格里。指定初始棋局和目标棋局(如下图),计算出最少的移动步数    把空格看成0,一共九个数字     输入样例:    1 2 3 0 8 4 7 6 5   &nbsp

2020-09-24 13:51:56 1048

原创 子集问题

子集生成和组合问题打印 n 个数中任意 m 个数的组合在上述的基础上代码如下 void majorityNumber(List A, int k) {//集合A存储要求的数集,k为要求的子集的长度 int n = A.size(); for(int i=0; i<(1<<n); i++) {//一般左移运算符相当于乘以2的n(即符号右边的数)次幂 <!-- int num = 0, kk = i; //num统计 i 中 1

2020-09-22 23:02:12 318

原创 全排列

示例1求任意不同的n个数的全排列先假设4个序列的全排列递归过程其实就是忽略开头元素,去求解一个比自己当前阶数少一阶的序列的全排列,而这个子问题的全排列的解决也是一个同样的过程,这样就完全符合递归思想了。我们只要在每一个进程中,让当前规模下序列的每一个元素做一遍开头,然后进入递归调用即可解决问题代码如下public class Main{ int[] data = {1,2,3,4,5,6,8,9,10,32,15,18,33};/*本例设n为10*/ int num = 0;/*统

2020-09-22 10:26:29 113

原创 求众数

求众数给定一个数组大小n,求其中出现的次数严格大于n/3的元素方法:摩尔投票法步骤:第一次遍历 需要找出数量出现最多的 两个数字;第二次遍历 需要找出准确的出现次数,因为第一次遍历可能会漏掉一些次数;最后,要检查次数大于 n/3 的 才算众数。代码如下class Solution { public List<Integer> majorityElement(int[] nums) { List<Integer> list = n

2020-09-17 23:11:48 152

23年湖南师范大学-软件工程专硕-初始(数据结构)及复试(软件工程)资料

这是23年备考湖师大软件工程专硕资料,以及在备考过程中的做题笔记及心得,希望能帮到有需要的童鞋

2023-04-07

22年重庆邮电大学-软件工程专硕-初试(数据结构)及复试(程序设计)资料

这是我22年报考重庆邮电大学的资料,包括初试(数据结构)及复试(程序设计)。 在考研期间,查找资料也是需要耗费部分精力与时间的,好的资料会达到事半功倍的效果,这点我深有体会,故分享给需要的人,希望能帮助其在考研上更进一步

2023-04-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除