栈与队列经典面试题:用两个栈实现队列、用两个队列实现栈

用两个栈实现队列、用两个队列实现栈题1:用两个栈实现队列算法分析栈的特点是先进后出,

原创 点赞0 阅读5 收藏0 评论0 9 天前

2021-07-13:C++基础知识02

main() { const int i1 = 10; int* pi1 = (int*)&i1; *pi1 = 20; printf("%d\n", i1); return 0;}输出结果是:20

原创 点赞0 阅读10 收藏0 评论0 9 天前

2021-07-14:C++基础知识03

C++基础知识03 Section01:指向基本数据类型的指针 曾有人这么谈到计算机内存:“内存就像是一群连续的房子,每个房子可以存储一些内容,每个房子也有自己的门牌号,在必要的时候我们可以通过门牌号去找到对应的房子访问需要的内容”。这个说法是否准确呢?我们先来看看内存模型: Section-1.1:内存模型 计算机中存储的最小的单位是bit,它的值只有0、1。但是这么小的位也不能表示很多信息,

原创 点赞0 阅读11 收藏0 评论0 9 天前

二叉树与完全二叉树计算节点数

归模式,从根节点开始计算,然后每一轮都带上该子树的根节点,直到叶子节点的时候,就只有一个节点了!此时,节点个数就计算完成!思路 2完全二叉树的概

原创 点赞0 阅读7 收藏0 评论0 9 天前

Codewars 解题报告:Are they the “same“?

Codewars 解题报告:Are they the “same”?题目内容我的解决方案

原创 点赞0 阅读16 收藏0 评论0 17 天前

2021-07-12:C++基础知识01

C++基础知识01Section01:双冒号运算符与作用域Subsection-1.1:作用域在C/C++的作用域中,讲究一个就近原则。也就是说,在局部和全局都对某个变量进行了定义时,我们的访问/调用会去操作 “最近” 的那个变量!例如下面的例子

原创 点赞0 阅读30 收藏0 评论0 17 天前

深入理解单调栈

单调栈例题选自leetcodehttps://leetcode-cn.com/problems/largest-rectangle-in-histogram/什么是单调栈?可以看看我以前的博客(刚刚大二的时候写的),可能稍微有点不成熟,姑且看之哈~

原创 点赞0 阅读2669 收藏0 评论0 21 天前

C++程序设计:自定义类作为Key的map编程技法与原理

自定义类作为Key的map编程技法与原理 什么类型可以作为map的Key? 想要明白这一点,首先要知道STL中的map是怎样的一种数据结构。map是基于红黑树实现的数据结构,谈到“红黑树”可能会让不少同学望而却步,红黑树不懂,那二叉搜索树可否理解?如果单单要搞懂这篇博客,知道红黑树也是一种搜索树即可啦! 那么,什么是基于“红黑树”实现呢?其实就是说,它的Key是存储在红黑树上面的!好吧,不说红黑

原创 点赞0 阅读4230 收藏0 评论0 22 天前

C++程序设计:自定义类作为Key的unordered_map编程技法

自定义类作为Key的unordered_map编程技法 如何用自定义类型作为unordered_map的key呢? 在上一节,我们讲到:这是自定义类型作为map的Key的编程技法与原理。我们这里先只谈技法,原理下次讲哈希表再去探讨。 分析作为unordered_map的Key的条件 联想标记数组算法,其实标记数组就是一种哈希,只是那是一种以下标(非负整型作为Key)的哈希表。unordered_

原创 点赞0 阅读4140 收藏0 评论0 22 天前

论文精读笔记与思考:An Efficient Privacy-Preserving Outsourced Calculation Toolkits with Multiple Keys

精读安全外包计算1——笔记与思考系统模型系统模型图系统参与实体介绍分布式双服务器的好处问题陈述数据格式(疑惑点)数据格式的思考笔记分布式双陷门密码体制原文描述的密码体制(不严谨)我觉得可能会造成解密失败的算法(不严谨)我觉得解密失败的原因,还请大佬指正卡迈克尔函数的笔记1、卡迈克尔函数的定义2、我对卡迈克尔定理的证明3、迈克尔函数的性质4、卡迈克尔函数的总结隐私保护下的整型计算包1、加法同态性在本文中的应用2、安全加法协议安全加法协议的安全问题3、安全符号位查询协议我的诸多疑惑,关于这个安全查询符号协议以及

原创 点赞0 阅读10000+ 收藏0 评论0 2021-06-08

Design Patterns——Template Method入门到情景实战

Template Method什么是Template MethodTemplate Method的设计思想简单的说,就是为了避免在多个子类实现某个算法的过程中,应用程序开发人员写错了算法过程,而导致产生了错误的结果。我们让类库开发人员自己写一个固定的算法骨架(于是此模式只能适应于算法骨架基本确定的应用场景!)。让一部分所有类都公用的算法、步骤,在类库中实现,然后让不同的应用程序开发人员书写适用于当前场景的部分步骤,然后调用父类的骨架方法,实现算法!在Template Method设计模式中有哪些类型

原创 点赞0 阅读10000+ 收藏0 评论0 2021-06-08

现代密码学原理与实现——任务一:RSA体制下的加密、解密、签名、签证

任务一:RSA体制下的加密、解密、签名、签证分解任务1:什么是RSA体制?1.1、公钥密码学与数学难题在上世纪七八十年代,公钥密码学提出来之后,基于数学难题(陷门函数)的公钥密码体制便得到了发展,最基础的密码体制就是基于“大整数分解难题”的RSA密码体制。利用的单向陷门函数是这样定义的:已知两个大素数 p 和 q,其中(p - 1, q - 1)的结果较大,则:通过 p * q 得到大整数 n 是很容易的,但是反过来却是陷门,因为通过大整数 n 得到素数 p 和 q 是很困难的!这就是RSA密码体制

原创 点赞0 阅读10000+ 收藏0 评论0 2021-06-08

随笔小记:重载输入输出运算符的注意事项

重载输入输出运算符的注意事项重载输入输出运算符必须写成《友元函数》示例:#include <iostream>#include <string>using namespace std;class Student {private: string name; int score;public: Student() { } Student(string name_, int score_) :name(name_), score(score_) { } s

原创 点赞0 阅读10000+ 收藏0 评论0 2021-06-08

初识设计模式1:单例模式(不考虑多线程)

初识设计模式1:单例模式1、什么是单例模式?在整个进程中,或者说是在整个工作过程中,只允许有一个实例对象的存在 。这个实例对象能够完成全部工作过程所需要的属性和方法。所以不需要再有其他的实例!这个单例模式往往运用在某些资源受限的场景 中,和操作系统的 “互斥信号量” 非常相似。比如打印机,我们限定只有一台打印机(资源受限),然后就得防止其他人另外开辟资源来实例化第二个打印机(可以理解为你们的资金只预算了这一台打印机,如果超预算,你得破产!)。并且这个资源不光是给一个人使用的,它是一个全局的访问点 !并且

原创 点赞0 阅读10000+ 收藏0 评论0 2021-06-08

less & greater 参数在sort和priority_queue中的作用

less<> & greater<>这个参数在sort和priority_queue中的作用是完全相反的:在sort排序中,less< typename>()的作用是升序排序(从小到大)但是在priority_queue中,less< typename> 的作用是降序排列(大顶堆)但是他们的共同之处就是:less<>也好...

原创 点赞0 阅读10000+ 收藏0 评论0 2021-06-08

高性能计算之OpenMP——超算习堂学习1

OpenMP学习1——超算习堂一、for循环并行运用预编译命令:#pragma omp parallel for for(……) { /* Content */ }1.1、举个实例

原创 点赞0 阅读10000+ 收藏0 评论0 2021-06-08

CCF CSP认证:2019-12-第二题:回收站选址

2019-12-第二题:回收站选址题目链接:回收站选址题目描述:算法设计与分析灵活利用基本的STL,即可完成解题。这题首先很明显的思路是:“标记数组”,但是我们知道数组的下标必须是非负整数,而这里的坐标是可能存在负数的!于是不能用数组,而要采用其他的策略!再看到数据的范围,需要标记的坐标达到了10^9,这个规模用一般的容器也无法存放!所以我们采用map(有序映射表)或者unordered_map(无序哈希表),去映射出《点-存在与否》的关系。那么到底是采用有序映射还是哈希映射呢?有序

原创 点赞0 阅读10000+ 收藏0 评论0 2021-06-08

蓝桥杯训练1:搜索专题真题(一道树的直径比较有趣)

第一题:带分数训练题1:带分数我的AC代码:#include <iostream>#include <algorithm>using namespace std;int GetNum(int a[], int begin, int end) { int num = 0; for (int i = begin; i < end; ++i) num ...

原创 点赞0 阅读10000+ 收藏0 评论0 2021-06-08

高性能计算之OpenMP——超算习堂学习2

OpenMP学习2——超算习堂一、for指令的使用方法细嚼1.1、parallel for指令的用法在OpenMP并行程序设计中,for循环是一种独立的并行指令。

原创 点赞0 阅读10000+ 收藏0 评论0 2021-06-08

玩CTF学密码学1:base64加解码

CTF密码学1:base64加解码一、先上题目:这是小良的第一道CTF的练习题。下载附件之后,就看到一串码:拿到这串码,我也很懵逼。但是仔细分析一看,发现这串码有它的特点:全是数字、大写字母、小写字母组成,然后放到VS去跑一下,发现这个码的长度是44根据我学的密码学知识,这个序列肯定是让我解码,因为这个序列看起来很杂乱,应该是密文。然而能让我密文解密成为明文,我又没得到私钥,那肯定是...

原创 点赞0 阅读9490 收藏0 评论0 2021-06-08

玩CTF学密码学2:Caesar(凯撒密码)、Morse(摩斯密码)、二次base64+Unicode转ASCii码

CTF密码学2:一、Caesar密码:不是我说,这题一开始我是真的迷,第一:他说灯笼上是一对 字符,我原来还以为这一对字符是密钥和明文呢,直到我打开附件,这必然不是key啊:这里大家可以看到,我们的附件是这个模样,它可能是明文也可能是密文。回看上一道题,答案的格式是:cyberpeace{XXXX}这种格式,这说明啥呢?说明这个附件的大括号前是cyberpeace,然后大括号没有被加密或...

原创 点赞0 阅读9628 收藏0 评论0 2021-06-08

玩CTF学密码学4:

第一题:幂数加密查看附件:第一题分析:他说答案是八位的大写字母,大写字母要么是ASCII表上的65-90,要么就0-25(或1-26)也是可以表示。但是既然说明是八位,那这个八位肯定要体现出来,也就是说这个附件要能够搞出八个数码来代表大写字母。我们先得到这个字符串的长度:34,这不能被8整除,那是否有别的字符能标识8段呢?于是我写了这样一个程序:#include <iostre...

原创 点赞0 阅读2588 收藏0 评论0 2021-06-08

Vector向量清除的方式总结

Vector向量清除的方式总结清除vector有两种含义含义1:只清除内容,不收回空间含义2:既清除内容,又收回空间看看下面这个代码:#include <iostream>#include <vector>using namespace std;struct Edge { int v, d;};int main() { cout << "****************一维vector***************" << endl

原创 点赞0 阅读45 收藏0 评论0 2021-06-08

leetcode 529.扫雷游戏(DFS)

leetcode 529.扫雷游戏(DFS)题目描述样例描述算法分析这个题还是规矩比较多的,尤其是一开始打算用C语言做(本人学习密码编码学,算法工程上都是用C实现,所以刻意练习用C写算法)。一看到那个C语言提交的模板就傻了,那参数多的啊……果断C++写!好了,废话不多说!提炼题目描述给出click的位置,要求问你click之后的游戏面板会变成啥子模样~如果你不小心点到了雷,那就显示一个 ‘X’ ,游戏自然结束(和扫雷一样~)否则就需要去处理很多东西了,你想想看,自己玩扫雷的时候,是不是

原创 点赞0 阅读70 收藏0 评论0 2021-06-08

一道很不错的细节模拟题:洛谷P5587 打字练习

一道很不错的细节模拟题:洛谷P5587 打字练习题目描述:题目链接:P5585-打字练习算法分析与实现这题的细节在于一句话:“输入的内容包含小写字母、英文句号、退格符”。如此一来就是在告诉我们“范文”也有可能存在退格符!然后就需要对带有退格符的字符串进行解析,这是这题算法的关键!如果有一个退格就删去距离该退格最近的字符,这一点用过office的同学应该都很了解!那么如果有多个退格呢?就需要把距离该退格最近的多个字符全删除!如何描述这个过程呢?很明显,距离该退格最近的字符是后加入的,却要最先

原创 点赞0 阅读76 收藏0 评论0 2021-06-08

天梯赛:L1-006 连续因子 (20分)

天梯赛:L1-006 连续因子 (20分)算法分析如下:这题我们可以看到,需要求连续的因子,并且n不超过2^31,这就说明这个n是一个int类型的整数。我们知道,12!就超过int了,于是这个连续因子涉及的范围应该比较小!于是我们就只枚举小区间[2, 50],然后需要注意的坑点就是:一、不光该因子是n的因子,乘积也要是n的因子二、如果是质数,可能就不存在其他的因子,直接输出1和它本身即可。AC代码如下:#include <iostream>using namespace std;

原创 点赞0 阅读72 收藏0 评论0 2021-06-08

寒假程序设计训练1:Vijos基础训练——基本程序设计与字符串简单处理(2021/01/01)

2021寒假程序设计训练Vijos(2021-01-01)T1:珠心算测验T1我的参考程序:#include <iostream>using namespace std;const int maxn = 105;const int maxv = 1e4 + 5;int n, a[maxn], ans;bool isVis[maxv];int main(){ cin >> n; for(int i = 0;i < n;++i) { cin &

原创 点赞0 阅读65 收藏0 评论0 2021-06-08

山东理工大学网络擂台赛——A.五军之战

山东理工大学网络擂台赛——A.五军之战题目内容我的AC程序#include <iostream>#include <vector>#include <algorithm>using namespace std;const int maxn = 2030;typedef long long ll;int n, u, v, leafCnt;bool isVis[maxn];vector<int> G[maxn];vector<l

原创 点赞0 阅读101 收藏0 评论0 2021-06-08

山东理工大学网络擂台赛——G.蒟蒻们最后的挣扎(前缀和+异或思想)

山东理工大学网络擂台赛——G.蒟蒻们最后的挣扎(前缀和+异或思想)题目描述Description在 LJJ 的“压迫”下,每个蒟蒻要出三道题,正所谓哪里有剥削哪里就有反抗,蒟蒻们给强大的 LJJ 出了一道题,如果 LJJ 解出了题,蒟蒻们才心甘情愿给 LJJ 当苦力。问题其实很简单:给你一个区间 L 到 R,要求你求出从 L 异或到 R 的值。但是LJJ还(不)有(屑)很(做)多(这)事(种)要(水)忙(题),于是他找到了你希望你能写个程序帮他解决这道题。Input第一行一个T(1 ≤ L ≤ T

原创 点赞0 阅读72 收藏0 评论0 2021-06-08

利用定期重置思想,优化一道CCF CSP考试题:201403-2(窗口)

利用定期维护rank,优化CCF CSP-窗口题目内容算法分析与设计这题是很典序的模拟题,也是计算机系统里很常见的现象。以浏览器窗体为例,大家在打开多个窗口的时候,肯定是上层的窗口优先被点击,而非上层的窗口在点击后变成上层窗口。在刚刚输入的时候,也就是刚刚打开若干窗口的时候,肯定是后打开的窗口优先级更高!所以初始情况肯定是优先级根据输入的顺序从低到高~然后就是如何设计窗口优先级的动态增长问题了??这也是我们这篇博客的重点!我们设定找到的,rankrankrank 最大的窗口是第 iii 个

原创 点赞0 阅读58 收藏0 评论0 2021-06-08
  • 1
  • 2
  • 3
  • 4
  • 5