算法
dogs~xiaofei
这个作者很懒,什么都没留下…
展开
-
离散化处理
离散化处理问题 ***这个问题是用来处理由于数据非常大但是用到的区间却非常小导致空间的浪费。 例如:***假定有一个无限长的数轴,数轴上每个坐标上的数都是0。现在,我们首先进行 n 次操作,每次操作将某一位置x上的数加c。接下来,进行 m 次询问,每个询问包含两个整数l和r,你需要求出在区间 [l, r]之间的所有数的和。输入格式:第一行包含两个整数n和m。接下来 n 行,每行包含两个整数x和c。再接下里 m 行,每行包含两个整数l和r。输出格式:共m行,每行输出一原创 2021-01-29 19:21:10 · 158 阅读 · 0 评论 -
双指针求和
题目:这道题是对另一道经典的双指针求目标和的拓展那道题的描述是给个目标值 如何在一个有序的数组中求出两个数相加等于目标值。而对于这道题来说其实也是首先 先将序列进行排序如果最后一个数大于0一定不会存在其次 将第一个数从左边定下 这个数一定是小于0的在这个数的右边找到 两个数的目标是 -first的值 哪这三个数即为所求class Solution {public: vector<vector<int>> threeSum(vector<i原创 2021-07-15 20:03:34 · 190 阅读 · 0 评论 -
数据结构课程设计(hash处理冲突的应用(QQ管理系统))
// design.cpp : 定义控制台应用程序的入口点。// 包括hash函数的设计, 开放寻址法, 拉链法, 再hash法#include "stdafx.h"#include "iostream"#include "string"#include "cstdlib"#include "cstdio"#include <ctime>using namespace std;const int P = 131; //字符串hash的基数//本系统可以选择两原创 2021-06-21 10:10:09 · 192 阅读 · 1 评论 -
最长上升子序列 +优化
最长上升子序列 + 优化#include “iostream”using namespace std;const int N = 1010;char a[N], b[N];int f[N][N];int main(){int n, m;cin >> n >>m;cin >> a + 1 >> b + 1;for(int i = 1; i <= n; i ++){ for(int j = 1; j <= m; j ++原创 2021-05-30 20:55:57 · 133 阅读 · 0 评论 -
最长公共子序列
最长公共子序列原创 2021-05-30 20:50:31 · 45 阅读 · 0 评论 -
数据结构实验(哈夫曼编码实验进行压缩文件和解压文件)
实验二目的要求:掌握赫夫曼树和赫夫曼编码的基本思想和算法的程序实现。实验内容:实现文件中数据的加解密与压缩:将硬盘上的一个文本文件进行加密,比较加密文件和原始文件的大小差别;对加密文件进行解密,比较原始文件和解码文件的内容是否一致。实验说明:1.输入和输出:(1)输入:硬盘上给定的原始文件及文件路径。(2)输出: 硬盘上的加密文件及文件路径; 硬盘上的解码文件及文件路径; 原始文件和解码文件的比对结果。2.实验要求: 提取原始文件中的数据(包括中文、英文或其他字符),根据原创 2021-05-11 14:19:59 · 1628 阅读 · 0 评论 -
第十二届蓝桥杯B组题目及题解
== 蓝桥杯B组(java 或者C)==填空题前两道填空题就不说了这道题大多数人应该都是卡到了精度问题 double比较大小小于一定的精度我们就认为已经相等了直接上代码#include <iostream>#include <cstring>#include <algorithm>#include "cmath"using namespace std;typedef pair<double, double> PII;PII l[原创 2021-05-04 15:42:07 · 2745 阅读 · 2 评论 -
整型邻接表的数组表示
拓扑排序邻接表的表示 可以用数组来简单的模拟整型单链表,以此来节省空间int h[N]; //储存节点int ne[M]; //储存下一个节点值 //存的值是 对应在 e数组中的下标int e[M]; //储存邻接节点值int cnt=0; //储存对应在e放到第几个了int d[N]; //存储每一个节点的入度int top[N]; //记录拓扑的顺序void add(int a,int b){ //一条边的两个顶点e[c原创 2021-02-23 17:51:33 · 88 阅读 · 0 评论 -
最长连续不重复子序列
双指针做法给定一个长度为n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。输入格式第一行包含整数n第二行包含n个整数(均在0~100000范围内),表示整数序列。输出格式共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。数据范围1≤n≤100000输入样例:51 2 2 3 5输出样例:3#include "iostream"using namespace std;const int N=1e5+10;int n,a[N],h[原创 2021-02-09 08:29:43 · 102 阅读 · 0 评论 -
快速幂
快速幂首先了解一个例子:3的9次幂如何写出来?9的二进制为:1001他就等于1乘以2的0次幂 加上 0乘以2的1次幂 加上 0乘以2的2次幂 加上 1乘以2的3次幂利用相同底数幂的乘积为指数相加 所以 3的9次幂 就等于 3的1次幂 * 03的2次幂 * 03的4次幂 * 1*3的8次幂 注意每次称的刚好是前面的 平方 前面的0或者1取决与b每次右移一位的二进制的末位 为多少 b&1代码:#include "iostream"using namespace std;原创 2021-02-04 09:49:21 · 58 阅读 · 0 评论 -
广搜处理最短路径
广搜求最短路径(BFS)BFS先把初始状态入队,然后进入循环,弹出队头拓展队头的子节点( 判个重) ,然后压入队尾阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。迷宫用一个 R×C 的字符矩阵来表示。字符 S 表示阿尔吉侬所在的位置,字符 E 表示奶酪所在的位置,字符 # 表示墙壁,字原创 2021-02-03 11:03:39 · 654 阅读 · 0 评论