
算法
文章平均质量分 80
万伏小太阳
这个作者很懒,什么都没留下…
展开
-
各种排序算法的思想和比较
对一个序列按关键字排列,使列表有序就是排序。排序算法的稳定性:是指两个两个相同的元素,在排序之后,他两的相对位置是否会发生改变。原创 2023-04-13 20:01:56 · 587 阅读 · 0 评论 -
操作系统 实验 银行家算法C++
操作系统 银行家算法以下算法介绍为书本P100页内容1.银行家算法中的数据结构(1) 可利用资源向量Available。这是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。如果available[j]=K,则表示系统中现有Rj类资源K个。(2) 最大需求矩阵Max。这是一个m×n的矩阵,它定义了系统中m个进程中的每一个进程对n类资源的最大需求。如果max[i,j]=K,则表示进程i需要Rj类原创 2022-04-10 00:42:35 · 1600 阅读 · 1 评论 -
第十二届蓝桥杯大赛软件赛省赛第二场C/C++大学B组 题解(大部分)
A 求余code#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 2e6 + 7;const int mod = 1e9 + 7;const int MOD = 998244353;#define sc(x) scanf("%lld", &(x))#define pr(x) printf("%lld\n", (x))#define int long long#原创 2022-03-28 20:24:55 · 222 阅读 · 0 评论 -
第十二届蓝桥杯省赛 第一场 C++ B组 题解 (全)
第十二届蓝桥杯A 空间问题描述小蓝准备用 256MB 的内存空间开一个数组,数组的每个元素都是 32 位 二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问 256MB 的空间可以存储多少个 32 位二进制整数?思路:int,四个字节,不知道可以用sizeof,1MB=1024KB,1KB=1024B;code:#include <bits/stdc++.h>#define int long long#define rep(i, l, r) for (in原创 2022-03-23 17:20:01 · 1938 阅读 · 0 评论 -
算法 区间 DP
区间 DP什么是区间 DP?¶区间类动态规划是线性动态规划的扩展,它在分阶段地划分问题时,与阶段中元素出现的顺序和由前一阶段的哪些元素合并而来有很大的关系。令状态 表示将下标位置 到 的所有元素合并能获得的价值的最大值,那么 f(i,j)=max(f(i,k)+f(k+1,j)+cost,f(i,j))f(i,j)=max(f(i,k)+f(k+1,j)+cost,f(i,j))f(i,j)=max(f(i,k)+f(k+1,j)+cost,f(i,j)) ;cost为将这两组元素合并起来的代价。区间原创 2022-02-23 22:21:19 · 114 阅读 · 0 评论 -
8.16每日一题 526.优美的排列
526. 优美的排列假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数组为一个优美的排列。条件:第 i 位的数字能被 i 整除i 能被第 i 位上的数字整除现在给定一个整数 N,请问可以构造多少个优美的排列?说明:N<=15N<=15N<=15;思路:这个题目有点像dfs搜全排列,但是对于每一位的数有限制条件。如果我们搜出全部的全排列在判断必然会原创 2021-08-17 13:12:52 · 151 阅读 · 0 评论 -
Acwing 第十二场周赛
A给你一个数组,去重,每个数只留下最后出现的那个数字。1<T<20,1<n<50,1<ai<10001<T<20,1<n<50,1<a_i<10001<T<20,1<n<50,1<ai<1000思路签到题,从后往前输出第一个没有出现的数字就行了。用个桶记录每一个数是否出现。code#include<bits/stdc++.h>using namespace std;#de原创 2021-08-15 16:04:25 · 127 阅读 · 0 评论 -
ST表 RMQ问题
引入:ST算法(Sparse Table),以求最大值为例,设f[i,j]f[i,j]f[i,j]表示[i,i+2j−1][i,i+2^j-1][i,i+2j−1]这个区间内的最大值,那么在询问到[a,b][a,b][a,b]区间的最大值时答案就是max(f[a,k],f[b−2k+1,k]),max(f[a,k], f[b-2^k+1,k]),max(f[a,k],f[b−2k+1,k]),其中kkk是满足2k<=b−a+12^k<=b-a+12k<=b−a+1(即长度)的原创 2021-08-12 15:46:32 · 152 阅读 · 0 评论 -
树状数组
引入:用数组模拟树形结构,可以解决一些区间更新,求和的问题。比线段树更简单一些的数据结构,树状数组能够解决的问题,线段树(还没学)都可以解决。原理啥的,我也讲不明白,看大佬博客构建树状数组单点更新,区间查询int n,a[1000010],c[1000010];int lowbit(int x){ return x&-x;//返回二进制最后一位1}void updata(int i,int k){//在i的位置上加上k for(;i<=n;i+=lowbit(i)) c[原创 2021-08-12 15:44:33 · 144 阅读 · 0 评论 -
洛谷P1637 三元上升子序列
洛谷P1637 三元上升子序列题意:Erwin 最近对一种叫 thair 的东西巨感兴趣。。。在含有 n 个整数的序列$ a_1,a_2,…,a_n 中,三个数被称作‘thair‘当且仅当中,三个数被称作`thair`当且仅当中,三个数被称作‘thair‘当且仅当i<j<k$ 且 ai<aj<aka_i<a_j<a_kai<aj<ak;求一个序列中 thair 的个数。输入:42 1 3 451 2 2 3 4 输出:27D原创 2021-08-12 15:42:09 · 288 阅读 · 0 评论