- 2024-11-15数据结构——栈和队列的模拟实现
文章目录前言一、栈1.1概念与结构1.2栈的实现二、队列2.1概念与结构2.2队列的实现总结前言继上篇博客,已经把链表的有关习题完成,链表也已经收尾啦。今天来学习新的数据结构——栈和队列,fellowme一、栈1.1概念与结构栈:⼀种特殊的线性表,其只允许在固定
- 2024-11-10现代密码-公钥密码RSA
实验介绍:一个密钥(公钥)是公开的,另一个密钥(私钥)必须保密,且由公钥求解私钥的计算是不可行的。RSA1选取质数p和q(pq不可公开)2计算n=pq,φ(n)=(p-1)(q-1)3随机选取整数e作为公钥,要求1<e<φ(n),e和φ(n)互质如果不互质,就没有逆元,算不出私钥。4计算私钥d,怎么计算呢,使用欧几里得算法先
- 2024-11-10栈和队列(原理、代码实现、例题)
一、栈1.概念栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(LastInFirstOut)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做
- 2024-11-08队列详解
目录队列队列的概念及结构队列的实现代码队列功能的实现队列的尾插voidQueuePush(Queue*pq,QDataTypex);结构体封装指针typedefstructQueue总结代码队列的头删voidQueuePop(Queue*pq)代码队列的初始化voidQueueInit(Queue*pq)代码队列的销毁voidQueueDest
- 2024-11-04分层图求最短路
分层图求最短路速度限制题目描述在这个繁忙的社会中,我们往往不再去选择最短的道路,而是选择最快的路线。开车时每条道路的限速成为最关键的问题。不幸的是,有一些限速的标志丢失了,因此你无法得知应该开多快。一种可以辩解的解决方案是,按照原来的速度行驶。你的任务是计算两地间的
- 2024-11-03【笔记/模板】Johnson全源最短路
模板题目www.luogu.com.cn//Problem:P5905【模板】全源最短路(Johnson)//Contest:Luogu//URL:https://www.luogu.com.cn/problem/P5905//MemoryLimit:128MB//TimeLimit:1000ms////PoweredbyCPEditor(https://cpeditor.org)#include<bits/stdc++.h>
- 2024-10-25数据结构 ——— C语言实现链式队列
目录队列的概念以及示意图数组队列和链式队列链式队列的结构 实现链式队列的准备工作实现链式队列1.初始化2.打印队列的所有数据3.数据入队列(尾插)4.数据出队列(头删)5.访问队头的数据6.访问队尾的数据7.队列数据总个数8.判断队列是否为空9.释放队列的所
- 2024-10-25最短路算法笔记
最短路算法最短路算法可大致分为三类:无负权边的单源最短路,有负权边的单源最短路和多源汇最短路dijkstra算法dijkstra算法是求无负权边的单源最短路的常用算法,基于贪心的思想其过程大致为:找到距离已经确定最短路的连通块的最近的点把他加入已经确定最短路的连通块用这个
- 2024-10-23数据结构-----------栈和队列后续
1队列1.1概念与结构概念:只允许在一端进行插入数据操作,在另一端进行删除元素特殊的线性表,队列具有先进先出的性质入队列:进行插入操作的的一端叫做队尾出队列:进行删除操作的一端叫做队头下面我们来看一下队列的实现队列其实跟单链表是差不多的只不过队列只允许在队尾插入数
- 2024-10-23P8814 [CSP-J 2022] 解密 题解
解方程$题目中说,n=pq,ed=(p-1)(q-1)+1,m=n-ed+2.$$把ed的式子展开,得到:$$ed=p(q-1)-(q-1)+1$$ed=pq-p-q+2$$再把展开后的式子带入m中,得:$$m=n-(pq-p-q+2)+2.$$m=n-pq+p+q-2+2$$\becausen=pq$$\thereforem=pq-pq+p+q-2+2$$m=p+q.$$如果想要求出p和q的值,那么可以再
- 2024-10-22P9751 [CSP-J 2023] 旅游巴士 题解
思路首先,举一个例子,假如说小Z到了入口,但是没到时间,所以没法进去,该怎么办?当然是等$k$个时间单位呀.除此之外,像到了其他景区,但是还没开门怎么办?继续等$k$的非负整数倍时间呀.知道这个后,我们先定义状态$f_{i,j}$,表示到达点$i$时,路径长度(即时间)$mod$$k$的最早时
- 2024-10-21数据结构——队列
目录1>>导言2>>队列的结构3>>初始化4>>打印5>>入列6>>出列6.1>>判断是否为空7>>取队头和队尾数据and统计个数8>>队列销毁9>>三个文件代码queue.hqueue.ctest.c10>>总结1>>导言 在把栈学习完后,步入新的章节——队列,队列是一种特殊的线性表,队列是
- 2024-10-20【数据结构】队列
- 2024-10-20abc376E Max x Sum
有序列A[N]和B[N],选出一组大小为K的下标,让A[i]的最大值乘以(B[i]之和)的结果最小,求最小值。1<=T<=2E5,1<=K<=N<=2E5,1<=A[i],B[i]<=1E6分析:因为A[i]跟B[i]要同步选,因此对下标排序,然后枚举每个A[i]作为最大值,从B[i]中选出最小的K个求和,得到结果,B[i]之和可以用堆来维护。#inclu
- 2024-10-19直线与圆的最值问题(高二)
专题:直线+圆\(\qquad\qquad\)题型:最值问题\(\qquad\qquad\)难度系数:★★★ 题目已知\(P\)为圆\(C:x^2+y^2=1\)上的动点,直线\(l_1:kx-y-3k=0\)恒过定点\(A\),\(Q\)为直线\(l_2:x-y+3=0\)上的动点,则\(|PA|+3|PQ|\)的最小值为\(\underline{\quad\quad}\). 思考痕
- 2024-10-172024初秋集训——提高组 #38
B.广告效应题目描述有\(N\)户人家在一个数轴上,第\(i\)户人在\(x_i\),影响力为\(p_i\)。你决定把你的书送给一些人并让他们推销。如果一对人\(i,j\)满足:你送了\(i\)书且\(|x_i-x_j|\lep_i-p_j\),那么\(j\)会买你的书。求你至少要送几个人书才能让所有人都有你的书
- 2024-10-16【题解】[2023 合肥蜀山初中] 旅行(travel)
题目传送门题目大意有一个\(n\)个点\(m\)条边的有向图组成的城市,每条边可以是骑行边或公共交通边,公共交通边只能走一条,边是从\(u_i\)到\(v_i\)的有向边,需要花费\(time_i\)的时间,求\(1\)到其他点的最短路径。思路分析有一个很巧妙的思路叫分层图,它的思路是因为只能
- 2024-10-1318732 最短路问题
###思路1.**建模问题**:将车站和公交线路建模为图,其中车站是节点,公交线路是带权边。2.**选择算法**:使用Dijkstra算法求解从车站1到车站n的最短路径问题。3.**初始化**:创建一个优先队列(最小堆)来存储当前节点和到达该节点的最小花费。初始化所有节点的最小花费为无穷大,起
- 2024-10-09codeforces round 974(div.3)E(优先队列实现dijstra算法,devc++的优先队列用greater报错)
解题历程:看到两边同时移动,计算最终的相遇时间,我就想到两边同时计算各点到起点的最短距离,就是使用dijstra算法,最后所有节点取两次计算的最大值,再对所有节点取最小值,就是最终答案了,可是这个思路没有考虑有马的情况,思考一番后发现可以多列一个数组记录有马的情况下的行走最短路,然后
- 2024-10-09【C++】priority_queue的介绍和模拟实现
【C++】priority_queue的介绍和模拟实现一.priority_queue的介绍1.priority_queue的基本介绍2.priority_queue的使用介绍二.priority_queue的模拟实现一.priority_queue的介绍1.priority_queue的基本介绍优先队列是一种容器适配器,根据严格的弱排序标准,它的
- 2024-10-05数据结构——栈和队列
数据结构——栈和队列文章目录数据结构——栈和队列一、栈1.概念2.结构这里我们选择数组作为栈的底层结构。3.栈的实现3.1初始化3.2销毁3.3入数据3.4出数据3.5取栈顶元素3.6获取栈中有效元素个数4.完整代码4.1.Stack.h4.2.Stack.c4.3.test.c二、队列1.概念2.结构这
- 2024-10-05文心一言 VS 讯飞星火 VS chatgpt (362)-- 算法导论24.3 4题
四、Gaedel教授写了一个程序,他声称该程序实现了Dijkstra算法。对于每个结点,该程序生成值和。请给出一个时间复杂度为的算法来检查教授所编写程序的输出。该算法应该判断每个结点的和属性是否与某棵最短路径树中的信息匹配。这里可以假设所有的边权重皆为非负值。如
- 2024-10-03文心一言 VS 讯飞星火 VS chatgpt (360)-- 算法导论24.3 2题
二、请举出一个包含负权重的有向图,使得Dijkstra算法在其上运行时将产生不正确的结果。为什么在有负权重的情况下,定理24.6的证明不能成立呢?定理24.6的内容是:Dijkstra算法运行在带权重的有向图时,果所有权重为非负值,则在算法终止时,对于所有结点,我们有。如果要写代码,请用go
- 2024-10-02题解:SP10242 ACPC11D - Dice on a Board
思路递归生成所有的可能的筛子朝向,用DFS标记所有可达的位置,用dijkstra计算从起始位置到目标位置的最优路径,并确定在移动过程中能够获得的最大分数。generate函数generate用于生成所有可能的骰子朝向排列,\(mask\)作为参数,用于表示哪些数字已经被使用。使用二进制压缩。