自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 【哑节点的创建与运用】

哑节点

2022-07-28 10:28:08 534

原创 AVL树的插入+层次遍历+判断是否为完全二叉树板子

【代码】AVL树的插入+层次遍历+判断是否为完全二叉树板子。

2022-07-21 11:49:31 512

原创 保研面试常考题总结(自用 不断更新)

2022-07-08 10:59:12 529

原创 leetcode 1020. 飞地的数量 (广度优先搜索)

广度优先搜索。首先先将所有位置访问标注为false 如果位置上为1 ans++(统计所有1位置的个数)然后将可以离开网格边界的单元格标注为true 然后通过广度优先搜索与其相连格子访问置为1 然后ans-- 减去即可class Solution {public: bool vis[510][510]; int xx[4]={1,-1,0,0}; int yy[4]={0,0,1,-1}; int numEnclaves(vector<vector<int&

2022-02-12 23:11:04 323

原创 to_string()系列函数将数值转换成字符串形式

class Solution {public: vector<string> simplifiedFractions(int n) { vector<string> ans; for(int y=2;y<=n;y++){ for(int x=1;x<y;x++){ if(__gcd(x,y)==1){ ans.push_back(to_

2022-02-11 01:39:18 327

原创 【深度搜索 回溯】leetocde1219. 黄金矿工

class Solution {public: int xx[4]={0,0,1,-1}; int yy[4]={1,-1,0,0}; int m,n; //vector<vector<bool>> st(16,vector<bool>(16,false)); bool st[16][16]; int getMaximumGold(vector<vector<int>>& grid) {.

2022-02-05 19:16:29 479

原创 字符串反转常用函数reverse()和str.substr()

reverseclass Solution {public: //反转单词前缀 string reversePrefix(string word, char ch) { int n=word.size(); for(int i=0;i<n;i++){ if(word[i]==ch){ reverse(word.begin(),word.begin()+i+1); .

2022-02-02 10:51:39 6610

原创 C++中stringstream运用读入字符串句子中的单词

class Solution {public: vector<string> uncommonFromSentences(string s1, string s2) { unordered_map<string,int> mp; vector<string> ans; string s; stringstream a,b; a<<s1;b<<s2; .

2022-01-30 12:43:54 673

原创 Linux服务器期末复习总结

一、NFS+DHCPNFS 网络文件系统网络文件系统 NFS(Network File System)在不同系统之间实现文件共享,提供文件进行共享的系统是主机,共享这些文件的计算机是客户机。甚至一台计算机可以是主机也可以是客户机。1.基础题1.安装NFS,对共享目录进行权限分配,并对配置文件进行设置(1)CentOS 7系统实现NFS服务功能首先必须安装nfs-utils和rpcbind软件包yum install -y nfs-utils rpcbind(2)开启服务,开放服务端口,显示

2022-01-26 10:18:10 2636

原创 Leetcode1044. 最长重复子串(二分查找 + Rabin-Karp 字符串编码)思路分享-日常总结

Leetcode1044. 最长重复子串(二分查找 + Rabin-Karp 字符串编码)思路分享-日常总结思路:刚看到这题的时候脑子里只有暴力做法(bushi)后来看了一下各路大佬的题解 发现并看不懂 (字符串哈希+二分)说明前置知识还不够然后我学习了一点点前置知识如下:Rabin-Karp算法概述关于Rabin-Karp算法Rabin-Karp是用来解决字符串匹配(查重)的问题的。这个问题如下表达:Input : 字符串p,和字符串qOutput:如果p中包含q,则输出True;如

2021-12-23 16:30:02 767

原创 密码学-基于中国剩余定理的门限方案-C++实现

#include<iostream>#include<algorithm>#include<cmath>using namespace std;typedef long long LL;const int N=100;LL k=4,n=7,s_start=67187511;//m1=97,m2=98,m3=99,m4=101,m5=103, //m6=107 m7=109 s_start=67187512;;LL M;LL m[N],s[N],M_a

2021-11-24 15:24:54 1164

原创 密码学实验练习-Diffie-Hellman密钥交换

求n的本原根#include<iostream>#include<algorithm>using namespace std;//判断两个数是否互素bool IsPrime(int a,int b){ if(__gcd(a,b)==1){ return true; }else{ return false; }}//得到欧拉函数的值和取值集合void Euler(int n,int *s,int &sum){ for(int i=1;i&lt

2021-11-17 14:52:48 651

原创 DES c++ 密码学实验

#include <iostream>#include <bitset>#include <string>using namespace std; bitset<64> key; // 64位密钥bitset<48> subKey[16]; // 存放16轮子密钥/*---------------- DES的置换表 ------------------*/ // 初始置换IP int

2021-11-10 18:09:14 694

原创 RSA算法C++实现--密码学实验

#include<iostream>#include<algorithm>#include<math.h>#include<string.h>#include<time.h>using namespace std;typedef long long LL;LL p,q,n,n_Euler,e,d;LL Plaintext[100];//明文LL Ciphertext[100];//密文LL Plaintext_C[100];

2021-11-03 15:27:14 906 1

原创 PAT甲级真题 排序问题题解归纳(C++)

PAT甲级真题 排序问题题解归纳(C++)1.PAT甲级真题1012题-最佳排名注意四舍五入C++代码#include <iostream>#include <cstring>#include <algorithm>#include <cmath>#include <unordered_map>using namespace std;struct stu{ string number; double C,ma

2021-08-13 11:07:12 461

原创 每日一题 春季 Day 01(反转链表)

每日一题 春季 Day 01 (反转链表篇)AcWing 35. 反转链表定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。链表操作 迭代版本/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Sol

2021-03-18 23:11:43 162

原创 洛谷 P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题

洛谷 P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题1.最大公约数和最小公倍数的乘积就是原两个数的积2.欧几里得算法 又叫辗转相除法 求最大公约数#include<iostream>#include<stdio.h>#include<math.h>using namespace std;//朴素方法的原理://枚举一个数,判断它能否被读入的两个数的积整除,//如果可以再判断它和两个数的积除以它所得的数//的最大公约数和读入的最大

2021-03-18 23:09:28 407

原创 琦琦的彩虹糖

琦琦的彩虹糖网友问我的一道题 不知套题目名字 就叫:琦琦的彩虹糖吧)题目难度不高 主要考察stack的应用摘录的原因是储存栈中最大值的方法很好,压栈的时候push value的同时还push max 这样就可以一直保持stack top的值是最大值 这个思路非常好 (之前在leetcode上有看过类似题解 之后没用过就忘了 这次赶紧摘录)!网友的题解(帮网友改过代码之后 只能过80%测试点 实在是不知道怎么能优化 据说最后一个测试点是超时了),要是有网友看到这题 有压缩时间的改进思路 希望能留

2021-03-16 21:36:38 483

原创 Acwing 2067 走方格

Acwing 2067 走方格在平面上有一些二维的点阵。这些点的编号就像二维数组的编号一样,从上到下依次为第 1 至第 n 行,从左到右依次为第 1至第 m列,每一个点可以用行号和列号来表示。现在有个人站在第 1行第 1列,要走到第 n 行第 m 列。只能向右或者向下走。注意,如果行号和列数都是偶数,不能走入这一格中。问有多少种方案。输入格式输入一行包含两个整数 n,m。输出格式输出一个整数,表示答案。数据范围1≤n,m≤30输入样例1:3 4输出样例1:2输入样例2:

2021-03-11 13:18:53 465

原创 进制转换总结+蓝桥历届试题小计算器

进制转换总结10进制数转换成K进制数:string changetentok(long long num,int k){ while(num!=0){ int temp=num%k; num=num/k; if(temp<=9&&temp>=0) s.push_back(temp+'0'); else s.push_back(temp-10+'A'); } reverse(s.begin(),s.end()); return s;}k进制数转

2021-03-11 10:51:42 217

原创 leetcode 每日一题 224. 基本计算器

leetcode 每日一题 224. 基本计算器输入:"(1+(4+5+2)-3)+(6+8)"输出:23题解:class Solution {public: int calculate(string s) { stack<int> stk; int sum=0; int sgin=1; int i=0; stk.push(1); int len=s.length();

2021-03-10 19:39:19 143

原创 洛谷 P1115 最大子段和

洛谷 P1115 最大子段和思路第一个数为一个有效序列。如果一个数加上上一个有效序列得到的结果比这个数大,那么该数也属于这个有效序列。如果一个数加上上一个有效序列得到的结果比这个数小,那么这个数单独成为一个新的有效序列。题解:#include<iostream>#include<stdio.h>#include<algorithm>#include<math.h>using namespace std;const int N=200005

2021-03-10 07:54:41 118

原创 K皇后问题 Acwing 843 n-皇后问题/洛谷 P2105 K皇后

K皇后问题Acwing 843 n-皇后问题思路参考了Anish的题解我的题解:#include<iostream>#include<stdio.h>using namespace std;const int N=20;char g[N][N];bool col[N],dj[N],udj[N];int n;void dfs(int u){ if(u==n){ for(int i=0;i<n;i++){ for(int j=0;j<n

2021-03-09 22:46:40 422

原创 全排列题目的两种方法小结

AcWing 842. 排列数字方法一:next_permutation(a,a+n)#include<iostream>#include<stdio.h>#include<algorithm>using namespace std;int main(){ int a[10]; int n; scanf("%d",&n); for(int i=0;i<n;i++){ a[i]=i+1; } do{ for(int i=0

2021-03-09 22:27:37 119

原创 AcWing 801.二进制中1的个数 (暴力枚举)

AcWing 801.二进制中1的个数方法:(暴力枚举)O(nlongn)思路:对于每个数字a,a&1得到了该数字的最后一位,之后将a右移一位,直到位0,就得到了1的个数#include<iostream>#include<stdio.h>using namespace std;int main(){ int n,a; scanf("%d",&n); while(n--){ int k=0;

2021-03-09 15:11:21 186

原创 洛谷P4924 [1007]魔法少女小Scarlet

洛谷P4924 [1007]魔法少女小Scarlet一道关于矩阵转置的模拟、枚举、暴力题题目很良心不用考虑越界的情况。思路:因为矩阵是绕着某个中心(x,y)旋转的而且保证是正方形,为了得到正确的式子、便于理解,我们不妨设(x,y)为原点(0,0),这样稍微模拟一下就可以得到顺时针旋转90°后正方形上一点(i,j)坐标变成(j,-i),逆时针旋转90°后坐标变成(-j,i),然后枚举i,j即可。顺时针和逆时针旋转void clockwise(int x,int y,int r){//顺时针 fo

2021-03-09 11:09:09 376

原创 洛谷 P1009 [NOIP1998 普及组] 阶乘之和 (暴力打表解简单高精度题方法)

洛谷 P1009 [NOIP1998 普及组] 阶乘之和Python打表代码f=open(r'point.txt','w') #存入文件sum=1i=2last=1n=50while i<=n: last*=i sum+=last i+=1 #主函数 f.write('"') #上引号 f.write(str(sum)) #具体值 f.write('",') #下引号与逗号f.close提交代码#include<stdio.h>#includ

2021-03-08 17:08:37 265

原创 洛谷 P1629 邮递员送信

今天刚学会Dijkstra算法的堆优化 练练手洛谷 P1629 邮递员送信 题目链接思路:正着走过去的时候用一便dijkstra。返回时就建个返图跑一遍dijkstra。反图可以把所有结点的编号 +n建在原图的体系中。dijkstra(1);for(int i=1;i<=n;i++){sum+=dist[i];} dijkstra(n+1);for(int i=1+n;i<=n*2;i++){sum+=dist[i];}完整代码:#include<iostre

2021-03-07 18:54:48 223 2

原创 朴素Dijkstra与堆优化Dijkstra总结

朴素Dijkstra与堆优化Dijkstra总结1.朴素版dijkstra算法Dijkstra 的整体思路即进行n(n为n的个数)次迭代去确定每个点到起点的最小值 最后输出的终点的即为我们要找的最短路的距离按照这个思路除了需要存储图外(邻接矩阵)还需要存储这两个量:dist[N] //用于存储每个点到起点的最短距离st[N] //用于在更新最短距离时 判断当前的点的最短距离是否确定 是否需要更新每次迭代的过程中我们都先找到当前未确定的最短距离的点中距离最短的点int t=-1;//将t设

2021-03-07 12:27:28 4301 7

原创 PAT 1002 A+B for Polynomials

知识点:memset(m,0.0,sizeof(m))小结:第一次只有17分,原因是没有考虑到输出要保留一位小数#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<math.h> using namespace std;int main(){ int k; int n,sum=0; double t; do

2021-02-21 16:14:03 102

原创 PAT1001 A+B Format

PAT1001 A+B Format知识点:sprintf(s,"%d",c);举例理解:char s[20];int a=10;sprintf(s,"%d.jpg",a);//若a=10,则字符串s中存放的是"10.jpg".解题思路:首先看清楚题目数字的范围,发现并不是高精的题目,所以可以直接用整形变量进行运算,转换成字符串后判断一下位数添加’,'输出即可。题解:#include<stdio.h>#include<math.h>#include<s

2021-02-20 12:12:11 118

原创 力扣1356. 根据数字二进制下 1 的数目排序

题目:知识点学习总结:1.stable_sort 和 sort的区别在于 前者作排序可以使原来的"相同"的值在序列中的相对位置不变,这个应用在数组里面不受影响,当函数参数传入的是结构体时,会发现两者之间的明显区别;2.c++ bitset类用法class Solution { public: static bool cmp(int a, int b) { return bitset<32>(a).count() < bitset&lt

2020-11-06 16:29:08 143

原创 洛谷P1162 填涂颜色 代码及思路

P1162填涂颜色题目链接在此!标签:搜索 广度优先搜索(BFS) 队列难度:普及这道题偏易,想到了方法的话很快就出来了。我的思路:这道题乍一看可以用广度优先搜索来做,一开始看到这题,脑子里就在想想,去找被1围起来的0,将他们的值改为2,我也尝试了这样写,写了挺多,感觉这样写挺繁琐的,后来认真想了一下,发现可以反其道而行之!!!最终解法: 可以在这个方正最外层补一圈0,再进行广搜,只要相连的是0,就访问他们,标记他们为1,然后遇到1就停止搜索了,这样这一圈1外面的0全都被标记了,我们只需要将没被

2020-10-09 10:57:27 448

原创 洛谷P4017 最大食物链计数

洛谷P4017 最大食物链计数标签:动态规划(dp),搜索,图论,排序,深度优先搜索(DFS), 拓扑排序本蒟蒻第一次写解题思路!!仅供参考!!我的思路:先用一个二维数组记录每组输入数据的低一级和高一级的物种序号,并记录每种物种的被吃的次数,或吃其他物种的次数。然后开始搜索,搜索的过程是从最顶端食物链开始到食物链最低层。为了不超时,到每一个物种的食物链数量都保存下来了。emmm大致思路就这样 具体的看代码吧!#include<iostream>#include<stdio.h

2020-09-30 23:31:19 247

原创 洛谷P1092虫食算

洛谷P1092虫食算标签:搜索、数论、数学#include<iostream>#include<stdio.h>#include<algorithm>#include<string.h>using namespace std;int n,c[4][30],v[30],a[30];void dfs(int x,int y,int t){ if (a[c[1][n]]>=0&&a[c[2][n]]>=0&&

2020-09-29 16:06:13 152

原创 洛谷P1019单词接龙

洛谷P1019单词接龙标签:字符串 搜索#include<iostream>#include<stdio.h>#include<algorithm>#include<string.h>using namespace std;int n,ans;string a[22];int vis[22];void dfs(string x,int s){ ans=max(ans,s); for(int i=1;i<=n;i++){ i

2020-09-29 16:03:48 119

原创 洛谷P1101 单词方阵

洛谷P1101 单词方阵(我的算法学习之路)标签:字符串 搜索#include<iostream>#include<stdio.h>#include<algorithm>using namespace std;const int Maxn=110;char a[Maxn][Maxn];bool vis[Maxn][Maxn];int xx[]={1,1,1,0,0,-1,-1,-1};int yy[]={1,0,-1,1,-1,-1,1,0};s

2020-09-28 23:17:12 137

原创 DFS洛谷P1605 迷宫

DFS洛谷P1605 迷宫(我的算法学习之路)标签:搜索 地推 枚举,暴力#include<iostream>#include<stdio.h>#include<algorithm>using namespace std;int n,m,t,sx,sy,fx,fy,ans;bool mp[10][10];//用来存放障碍物 bool vis[10][10];int xx[4]={1,0,-1,0};int yy[4]={0,-1,0,1};vo

2020-09-28 23:15:39 134

原创 洛谷 P1219 [USACO1.5]八皇后 Checker Challenge

洛谷 P1219 [USACO1.5]八皇后 Checker Challenge标签:搜索 深度优先搜索(DFS) 高性能#include<iostream>#include<stdio.h>#include<algorithm>using namespace std;int n,cnt;bool lie[20];//列 bool leftxie[40];//从右上到左下 bool rightxie[40];//从左上到右下int a[20];

2020-09-26 17:59:23 139

原创 DFS洛谷P1706全排列问题(我的算法学习之路)

DFS洛谷P1706全排列问题标签:搜索 数论,数学 递归 深度优先搜索(DFS)#include<iostream>#include<stdio.h>#include<algorithm>using namespace std;int n;bool vis[20];int a[20];void pr(){ for(int i=1;i<=n;i++) { printf("%5d",a[i]); } printf("\n");}vo

2020-09-26 17:28:45 207

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除