自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ***(构建二叉搜索树+判断是否是完全二叉树)是否是完全二叉搜索树(二叉搜索树不一定是完全二叉树)(构造树用函数,位置从1开始,再使用一个tree[N]数组)(输出时判断是否为0来判断是否输出)

代码:#include<bits/stdc++.h>using namespace std;#define N 40int n;int tree[N]; //1 2 3 4 5 6 7int max1=0;void create(int x,int pos){ if(tree[pos]==0) { tree[pos]=x; max1=max(max1,pos); } else {

2022-04-18 16:47:27 166

原创 (先序,中序得到层次序列,层次序列左右翻转输出)玩转二叉树(利用两个数组,函数中还有开始下标和数组长度;队列实现层次遍历翻转输出)

代码://有先序,中序得到层次遍历序列//再输出反转后的层序遍历#include<bits/stdc++.h>using namespace std;#define N 35int mid[N],pre[N];int n;int t=0;int tree[N*N],tree1[N*N];void creatT(int *pre,int *mid,int n,int index){ if(n==0) return ; int k=0;

2022-04-18 16:10:46 175

原创 (**)(平衡二叉树的知识+求树的高度+左旋右旋及两者的结合+树的建立)平衡二叉树的根

#include<bits/stdc++.h>using namespace std;struct Node{ int data; Node* left; Node* right;};int n;int height(Node* T){ return T==NULL?0:max(height(T->left),height(T->right))+1;}Node* turn1(Node* T){ Node* A=T->.

2022-04-18 11:11:09 752

原创 根据后序和中序遍历输出先序序列(注意两个序列的符号不要弄混)

代码:#include<bits/stdc++.h>using namespace std;int in[33],post[33];int n;vector<int>pre;void getpre(int postl,int postr,int inl,int inr){ if(postl>postr) return; int m=inl; while(in[m]!=post[postr]) m++;

2022-04-18 10:47:15 1302

原创 (二叉搜索树,由先序得到后序)搜索树的判断(判断和得到后序序列放在一个函数中,如果后序数组不等于先序数组的个数,则不是二叉搜索树)

代码:#include<bits/stdc++.h>using namespace std;#define N 1005int n;int pre[N];int isMirror;vector<int> post;void getpost(int left,int right){ if(left>right) return ; int a=left+1,b=right; if(isMirror==0) {

2022-04-18 10:30:55 61

原创 (先序中序得到树的高度)还原二叉树(左右子树选最大+1)

代码:#include<bits/stdc++.h>using namespace std;char pre[55],in[55];int n;int Height(int prel,int prer,int inl,int inr){ if(prel>prer) return 0; //if(prel==prer) //return 1; int m=inl; while(in[m]!=pre[prel])

2022-04-18 09:54:01 736

原创 (树+dfs)列出叶节点(dfs使用队列,出队时判断是否是叶节点,如果左/右不是叶节点,则入队)

代码:#include<bits/stdc++.h>using namespace std;struct node{ int left; int right;}Node[12];int in[12];int res[12]; //存储放入的方向int top=0;void bfs(int x){ queue<int>q; q.push(x); while(q.size()) { int z

2022-04-18 09:37:23 190

原创 哲哲打游戏(简单模拟,重点理解题意)

代码:#include<bits/stdc++.h>using namespace std;#define N 100005int n,m;vector<int> v[N];int book[N];int main(){ cin>>n>>m; for(int i=1;i<=n;i++) { int k; cin>>k; v[i].push_back(0

2022-04-18 08:49:24 226

原创 (未解决)表达式转换

//表达式转换#include<bits/stdc++.h>using namespace std;stack<char> st;map<char,int> mp;int main(){ mp['+']=mp['-']=1; mp['*']=mp['/']=2; int flag=1; string str=""; cin>>str; for(int i=0;i<str.length();i+.

2022-04-18 08:13:23 141

原创 dinic(摧毁道路)

#include<bits/stdc++.h>using namespace std;#define INF 0x3f3f3f3f#define N 10050int n,m,s,t;int num=1;int head[N];struct node{ int next; int to; int w;}edge[N*N];void add(int u,int v,int w){ edge[++num].next=head[u]; .

2022-04-16 15:56:06 337

原创 使用优先队列和普通队列的区别

队列:spfa出队flag置为0,入队的时候置为1,和朴素算法一样#include<bits/stdc++.h>#define x first#define y second#define INF 0x3f3f3f3fusing namespace std;typedef pair<int,int> PII;const int N = 25005;int n,m,s,d,r,p,dis[N],in[N];vector<PII> mar[N];b

2022-04-16 13:59:17 962

原创 风雪火车站(单源最短路径的灵活应用)(使用优先队列+vector存储)

代码:#include<bits/stdc++.h>#define x first#define y second#define PII pair<int,int>#define N 100010#define M 500500#define INF 0x3f3f3f3fint visit[N];int n,m,s,t,G,q;int h[N],l[N];using namespace std;int main(){ cin>>n&g

2022-04-15 21:30:25 340

原创 (最小生成树模板)公路村村通

一、krustal的优先队列#include<bits/stdc++.h>using namespace std;#define N 1005#define INF 0x3f3f3f3fint pre[N];int n,m;struct edge{ int u,v,w; friend bool operator<(const edge &a,const edge &b) { return a.w>b.w;

2022-04-15 20:52:20 423

原创 (dijkstra例题)城市间紧急救援

dijkstra:常规算法#include<bits/stdc++.h>#define N 505#define INF 0x3f3f3f3fusing namespace std;int n,m,s,t;int num[N]; //救援队数量int pre[N]; //前一个结点int D[N]; //距离int e[N][N]; //边int flag[N];int people[N]; //召集的最多救援队数量int cnt[N];

2022-04-15 20:33:06 314

原创 最短路径问题(dijkstra+floyd+bellman-ford+spfa+bfs+dfs)最小生成树问题(prim+kruskal)

bfs:广度优先搜索dfs:深度优先搜索dijkstra:用于单源最短路径,无负权路floyd:任意两点间最短路径,可以算负权值,不能算负权回路bellman-ford:可以计算小规模的负权回路spfa:队列优化的bellman-forddinic:计算最大流bfs:可以用来求无权图的最短路径重点在于每次的试探pop时才输出dfs:重点在于回溯头部输出,相邻节点dfsdijkstra算法与此同时还有堆优化的dijkstra算法,使用链式前向星

2022-04-14 21:31:11 269

原创 归并排序、快速排序、堆排序

归并排序//归并排序//跟两个数组合并的算法有异曲同工之妙#include<bits/stdc++.h>using namespace std;#define N 105int q[N];int tmp[N]; //存放排序好的临时数组void merge_sort(int q[],int l,int r){ if(l>=r) return ; int mid=l+r>>1; merge_sort(q,l,mi

2022-04-13 15:13:17 147

原创 (*****dijkstra升级版)直捣黄龙(紧急救援加强版)

代码一、常规算法,比较麻烦//使用map容器将字符串和数字建立关系//dijkstra算法保存路径#include<iostream>#include<vector>#include<map>using namespace std;const int INF = 0x3f3f3f3f;const int N = 210;map<string,int>mp;int n,k,w;struct edge{ int to,cost;

2022-04-13 08:51:40 241

原创 (并查集+sort->最小生成树)最小生成树的唯一性

收获:看清楚题意,将每个边的信息存储在向量中,依旧从小到大排列,依次遍历判断是否加入此边(记为a)不是环路(起点终点的f值不同),并判断下一条边(记为b)是否权值与此边相同并且a边的两端各自与b的两端在一棵树上(起点代表都在已成的树上 终点为都可连接到接下来的最小树上),若满足,则代表树不唯一。若边数为n-1则已成,否则没有最小支撑树。代码:#include<bits/stdc++.h>using namespace std;int f[501];t.

2022-04-13 08:33:33 168

原创 (简单动态规划)括号序列-改

出错原因分析:1.2.dp[0][0]=1;3.代码:#include <iostream>#include<bits/stdc++.h>#define N 2010//#define INF 1e9+7#define INF 1000000007using namespace std;int n;string s;int dp[N][N]; //前i个字符中还有j个(需要匹配的答案的数量int main(){ cin&g..

2022-04-11 10:10:18 1057

原创 差分约束方程模板题目:P4878 [USACO05DEC]Layout G

题目链接:[USACO05DEC]Layout G - 洛谷差分方程可以转换为spfa算法spfa算法详解最短路径——Bellman-Ford算法以及SPFA算法_爱编程的大李子的博客-CSDN博客差分约束方程详解可见算法学习笔记(11): 差分约束 - 知乎该题详解可见的第一个解题思路 求 a[i] - a[j] 的最大值,就是求 j 到 i 的最短路。(a[i] - a[j] <= dis)。 求 a[i] - a[j] 的最小值,就是求 j 到 i 的最长路。(a[i

2022-04-10 22:49:39 272

原创 洛谷未解决的题目或者需要继续看的题目

2022-04-07 16:47:21 282

原创 贪心算法练习总结

巧妙使用快排和sort函数,考虑前后之间关系

2022-04-07 16:20:10 202

原创 优先队列 易错点总结

1.自定义类型并且自定义比较函数2.优先队列没有front,优先队列只有top,相当于队列的front3.

2022-04-07 14:42:06 256

原创 (未解决)P2196 [NOIP1996 提高组] 挖地雷

[NOIP1996 提高组] 挖地雷 - 洛谷

2022-04-04 17:23:26 246

原创 (动态规划**)P1434 [SHOI2002]滑雪

收获:1.看清题意,求最长长度2.>表示小顶堆,默认大顶堆3./如果用const则参数列表为一个参数:则一般使用friend代码:1.优先队列+dp#include<iostream>#include<queue>using namespace std;struct node{ int i,j,num; friend bool operator <(const node &x,const node &y)

2022-04-04 16:44:12 72

原创 (动态规划 引入)数字三角形 Number Triangles

收获:dp[i][j]=max(dp[i-1][j],dp[i-1][i-1,j-1])+mp[i][j];从上向下寻找最大值i,j位置的数据由左上角或者上面这个数据确定,代码:#include<iostream>using namespace std;#define MAX 1005int mp[MAX][MAX];int dp[MAX][MAX];int n;int main(){ cin>>n; int ans=-1;

2022-04-04 15:45:15 54

原创 (链表)list

输出:赋值和交换:插入和删除(迭代器)和移除(数据):移除:删除所有与x相同的值clear:清空数据存取:front,back,不能直接利用中括号,也不能用at[i]因为底层不是连续空间反转和排序自带sort如果为自定义数据类型,要自定义排序规则...

2022-04-03 20:12:14 208

原创 deque(双端队列)

deque容器:双端队列(跟vector基本相同)赋值插入和删除

2022-04-03 16:28:36 34

原创 仿函数 构造 排序

自己写一个仿函数自定义数据类型#include<iostream>using namespace std;#include<set>#include<cstring>//仿函数//在插入数据之前进行排序class Person //一个类{public: string m_Name; int m_Age; Person(string name,int age) { this->m_...

2022-04-03 15:29:10 369

原创 spfa (跟be ford比多了模拟邻接表+队列)

http://t.csdn.cn/AXRRU

2022-04-03 12:03:50 97

原创 leetCode:最大子数组和(动态规划 简单题)

题目描述:收获:数组中可能存在负数,所以之前写的程序在此处不适用【LeetCode】最大子数组和(动态规划、分治法)_凝眸伏笔的博客-CSDN博客_leetcode 最大子数组之和LeetCode第53题地址。题目描述:给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。例子:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。解题:动态规划解题:递归...https://

2022-04-03 11:52:46 173

原创 特立独行的幸福(读懂题意)

代码:#include<bits/stdc++.h>using namespace std;set<int>happy;vector<pair<int,int>>ans;int dd(int x){ int sum=0; while(x) { sum+=(x%10)*(x%10); x/=10; } return sum;}bool is_prime(int x){

2022-04-03 11:52:29 177

原创 (bellman-floyed)负环最短路

收获:1.结构体存储2.n e不能使用diji,因为它迭代一次之后之前迭代的都不能再改动了3.贝尔曼-福特(Bellman-Ford)算法——解决负权边(C++实现)_NickChen_0411的博客-CSDN博客_bellman-ford c++代码:#include<iostream>#include<cstring>#include<string>using namespace std;#define MAX 105#define

2022-04-03 11:26:59 1026

原创 地铁一日游(floyed+dfs)

天梯赛 L3-022 地铁一日游 (30分) Floyed+dfs_化身孤岛的鲸o的博客-CSDN博客#include<iostream>#include<vector>#include<map>using namespace std;#define MAX 205#define INF 0x3f3f3f3fstruct station{ int visit=0; //用于最后给所有可能的站都做标记 int ends=0;

2022-04-02 20:15:09 531

原创 (类似打印沙漏)螺旋矩阵

#include<stdio.h>int main(void){ int n,i,j; scanf("%d",&n); int a[10][10],index,num,m=1; num=n; for(index=0; index<=n-1; index++) { for(j=index; j<n; j++) { a[index][j]=m; .

2022-04-02 17:14:54 160

原创 C++将字符串全部转换为大写or小写字母

#include <iostream>#include <algorithm> //必需using namespace std;int main(){ string str; cin>>str; int len=str.length(); transform(str.begin(),str.end(),str.begin(),::toupper);//将字符串全部转换为大写字母 // ::tolower转换为小写字母.

2022-04-02 16:17:36 1566

原创 (字符串处理)统计单词个数

收获:在前后都加一个' '代码:注意:是位置,字符串下标#include<iostream>using namespace std;#include<algorithm>#include<string>#include<cstring>int main(){ string a,b; cin>>a; getchar(); transform(a.begin(),a.end(),a.beg

2022-04-02 16:05:23 167

原创 (多项式)多项式输出

代码:#include<iostream>#include<cmath>using namespace std;int main(){ int n; cin>>n; int a; for(int i=n;i>=0;i--) { cin>>a; if(a) { if(i!=n&&a>0) //是否有+号

2022-04-02 15:26:01 331

原创 (多项式问题)多项式A除以B

收获:分为三步L2-018 多项式A除以B (25 分)_galesaur_wcy的博客-CSDN博客代码:#include<iostream>using namespace std;#include<map>#include<cmath>struct node{ int e; //指数 double c; //系数}b[100005]; //存除数map<int,double>mp1; .

2022-04-02 14:52:16 358

原创 (多项式)求两个一元多项式的和

代码://求两个一元多项式的和#include<iostream>using namespace std;#include<vector>struct p{ int c; //系数 int e; //指数};int main(){ int n; cin>>n; vector<p> v1,v2; for(int i=0;i<n;i++) { int c,

2022-04-02 10:59:06 1149

空空如也

空空如也

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

TA关注的人

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