摘要: 概念 计数排序,有票箱,和票,将票对应票箱, 个人感觉类似哈希,将票对应到票箱,票箱有序 时间 $O(n)$ 例子 洛谷1271 学校正在选举学生会成员,有 n(n\le 999)n(n≤999) 名候选人,每名候选人编号分别从 1 到 nn,现在收集到了 m(m<=2000000)m(m<=200 阅读全文
posted @ 2022-11-12 10:42 壹剑霜寒十四州 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 洛谷 1059 建议先看计数排序在看此博客 概念 桶排序是对计数排序的一种升级,或者将计数排序理解为桶大小为1 说实话,没感觉到桶排序有多厉害,或者是自己孤陋寡闻 具体实现 首先先创建一个桶,其实就是hash,然后只不过范围大,相当于对数进行除法,取余为哈希kay 真的鸡肋的东西 时间 $O(n)$ 阅读全文
posted @ 2022-11-12 00:04 壹剑霜寒十四州 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 洛谷1923 错误 这道题用的快排,但是非常卡时间,最后将快排优化, 新学 stl中 nth_element(数组名,数组名+第k小元素,数组名+元素个数);将第k小元素找出,最后直接输出就行 //判断k所在的某一段位置 if(k<=y) qsort1(l,y); else if(x<=k) qso 阅读全文
posted @ 2022-11-11 14:55 壹剑霜寒十四州 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 洛谷1117,快速排序 概念 基于二分思想,分治是对冒泡排序算法的一种改进, 随机选择数组中的一个数,作为数组的分解,后面执行要求分解右边的都比分界大,左边都比分界小(当然这只是排序小到大) 复杂度 平均时间复杂度是 $O(nlogn)$ 最坏的情况就本身有序 $O(n^2)$ 代码 #includ 阅读全文
posted @ 2022-11-11 11:10 壹剑霜寒十四州 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 21,斐波那契 概念 如果是dp,就同个子问题得到当前问题方程 $$F[i]=F[i-1]+F[i-2]$$ 代码 //优化版本 class Solution { public: int Fibonacci(int n) { int front=0,tail=1; for(int i = 0;i<n 阅读全文
posted @ 2022-11-10 21:59 壹剑霜寒十四州 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 14.不修改数组找出重复的数字 题 给定一个长度为 n+1 的数组nums,数组中所有的数均在 1∼n 的范围内,其中 n≥1。 请找出数组中任意一个重复的数,但不能修改输入的数组。 数据范围 1≤n≤1000 样例 给定 nums = [2, 3, 5, 4, 3, 2, 6, 7]。 返回 2 阅读全文
posted @ 2022-11-10 21:41 壹剑霜寒十四州 阅读(16) 评论(0) 推荐(0) 编辑
摘要: application模型 阅读全文
posted @ 2022-11-10 20:04 壹剑霜寒十四州 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 多重背包问题 I 概念 参考完全背包 代码 在完全背包的基础上将值设为预定 #include<iostream> #include<cmath> using namespace std; const int N = 110; int n,m; int v[N],w[N],s[N]; int dp[N 阅读全文
posted @ 2022-11-10 16:17 壹剑霜寒十四州 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 概念 在01背包的基础上,每个物品可以多次使用 代码 超时 for(int i = 1 ; i<=n ;i++) for(int j = 0 ; j<=m ;j++) { for(int k = 0 ; k*v[i]<=j ; k++) f[i][j] = max(f[i][j],f[i-1][j- 阅读全文
posted @ 2022-11-10 15:55 壹剑霜寒十四州 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 概念 01背包,就是要么装进去,或者不装入bag,使得背包的容量不超过的前提下,产生的经济最大 dp: 通过动态规划dp实现将大问题分解多个子问题 dp表示经济价值 w[i] 表示第i个物品的经济价值 v[i]表示第i个物品的体积 $$dp_{ij} = max(dp_{i-1j},dp_{i-1, 阅读全文
posted @ 2022-11-10 14:55 壹剑霜寒十四州 阅读(25) 评论(0) 推荐(0) 编辑