自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树(C语言)

二叉树三种遍历,层次遍历,创建二叉树

2022-06-15 23:34:54 199

原创 KMP 数据结构

next[j]的含义是:在字串第j个字符匹配失败时,直接跳转到子串的下表为j的位置再与主串进行比较#include<iostream>#include<cstring>#include<algorithm>using namespace std;void Find_next(string T,int next[]){ int i=0,j=-1; next[0]=-1; while(i<T.length()-1) { if(j==-1||T[i

2022-05-06 19:01:45 416

原创 队列(c语言/链表)

用链表储存队列,原理是放两个头指针和尾指针,在队尾添加元素,在队首删除元素,清楚这个原理,再考虑一下特殊情况即可,比方说删除元素后队列内无元素及时把头指针尾指针指向空,其余的情况看代码即可#include<stdio.h>#include<windows.h>typedef struct LinkLNode{ int data; struct LinkLNode* next;}LinkLNode;typedef struct { LinkLNod

2022-04-22 20:22:59 1537

原创 队列(C语言)

这里首先展示的是分配一块连续的储存单元存放队列中的元素的储存方法,逻辑上用的结构为环(防止上溢出)的循环队列:在做循环队列的题目时,明确几个容易混淆的概念(假设数组存储空间为N)1.存储单元下标是:从0到N-1,即能存储数据的个数为N-1个。2.为了防止溢出,构成环结构,而形成环结构为了判断队空还是队满则放弃了一个存储单元#include<stdio.h>#include<windows.h>#define MaxSize 5typedef struct{ in

2022-04-20 21:21:58 870

原创 栈(C语言实现)

想要进行出栈以及各种栈操作,添加到主函数即可,栈的基础功能函数已经写好#include<stdio.h>#include<windows.h>#define MaxSize 50typedef struct{ int data[MaxSize]; int top;}SqStack;void Init(SqStack &S)///初始化{ S.top=-1;}bool StackEmpty(SqStack S){ if(S.t

2022-04-18 20:33:38 650

原创 对双链表的操作(c语言实现)

跟单链表相比差距很大的在于头插和尾插法#include<stdio.h>#include<iostream>#include<stdlib.h>#include<windows.h>typedef struct LNode{ int data; struct LNode *next; struct LNode *prior;}LNode; void CreatDoubleLinkList_head(LNode *&L,int a

2022-04-17 16:03:53 449

原创 对单链表的操作(c语言)

**如果想实操把该注释的给注释掉就可以了**#include<stdio.h>#include<iostream>#include<stdlib.h>#include<windows.h>typedef struct LNode{ int data; struct LNode *next; }LNode; void createlisthead(LNode *&L, int a[], int n)///头插{ LNode *s;

2022-04-17 15:35:43 265

原创 二叉树的层序遍历(leetcode 102)

102. 二叉树的层序遍历/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(

2021-11-12 19:54:06 87

原创 最大字序和(一直感觉很有意思的题目)

题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [0]输出:0示例 4:输入:nums = [-1]输出:-1示例 5:输入:nums = [-100000]输出:-100000提示:1 <

2021-10-20 15:16:33 91

原创 数据库系统原理 实验报告

实验一 数据库模式设计及建立——在课程表中增加一个credit字段,表示学分,类型为短整形实验二 数据的插入、修改和删除——在student表中输入6条记录——在 course 表中输入4条记录——在sc表中输入10条记录——删除和修改——给sc表建立唯一索引,先sno按升序、再按cno降序——按学建立索引号升序——删除sc表的索引实验三 简单查询和复杂查询(1)查询全体学生的学号和姓名。(3)查询全体学生的姓名和出生年份。(4)查询选修了课程的学生的学号。(5)查询计算机

2021-06-09 21:51:08 1106

原创 大数相乘(c语言实现)

具体思想:每一位相乘后 对应项累加,再按照进位的原则更新答案数组,要注意的是的答案数组下标的更新与对应项累加息息相关,可以根据代码推一组简单地数,就应该能理解。#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<math.h>#include<queue>#include<vector>#inclu

2021-06-04 17:27:57 352

原创 大数相减(c语言实现)

减数与被减数之间的关系:一.被减数大于减数,直接按照顺序 不够的借位二.被减数小于减数,交换位置后标记处-号#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<math.h>#include<queue>#include<vector>#include<map>#include&lt

2021-06-04 17:00:56 478

原创 大数相加(c语言实现)

题目:川哥可谓是我校ACM起家的鼻祖,虽然早已毕业却特别关注这次科技节的校赛,特意嘱咐,一定会A+B的大数加法!输入多行测试数据,每行包含两个正整数a和b,a和b的范围不会超过1000位输出输出a+b的结果样例输入1 11000 2000样例输出23000ac代码:#include<string.h>#include<algorithm>#include<iostream>#include<math.h>#include&lt

2021-06-04 14:43:29 2470 1

原创 最优包括(DP)

第十届蓝桥杯国赛C++B组我们称一个字符串 S 包含字符串 T 是指 T 是 S 的一个子序列,即可以从字符串 S 中抽出若干个字符,它们按原来的顺序组合成一个新的字符串与 T 完全一样。给定两个字符串 S 和 T,请问最少修改 S 中的多少个字符,能使 S 包含 T?输入格式输入两行,每行一个字符串。第一行的字符串为 S,第二行的字符串为 T。两个字符串均非空而且只包含大写英文字母。输出格式输出一个整数,表示答案。数据范围1≤|T|≤|S|≤1000输入样例:ABCDEABCDX

2021-06-01 15:52:35 425

原创 1397: [蓝桥杯2018决赛]最大乘积

1397: [蓝桥杯2018决赛]最大乘积题目描述把 1~9 这9个数字分成两组,中间插入乘号,有的时候,它们的乘积也只包含1~9这9个数字,而且每个数字只出现1次。比如:984672 * 351 = 34561987298751 * 3462 = 3418759629 * 87146325 = 784316925…符合这种规律的算式还有很多,请你计算在所有这些算式中,乘积最大是多少?输出输出一个整数表示答案来源/分类#include<stdio.h>#include

2021-05-28 13:40:46 173

原创 1392: [蓝桥杯2018决赛]激光样式

1392: [蓝桥杯2018决赛]激光样式题目描述x星球的盛大节日为增加气氛,用30台机光器一字排开,向太空中打出光柱。安装调试的时候才发现,不知什么原因,相邻的两台激光器不能同时打开!国王很想知道,在目前这种bug存在的情况下,一共能打出多少种激光效果?显然,如果只有3台机器,一共可以成5种样式,即:全都关上(sorry, 此时无声胜有声,这也算一种)开一台,共3种开两台,只1种30台就不好算了,国王只好请你帮忙了。输出输出一个整数表示答案来源/分类AC:#include&lt

2021-05-26 20:22:02 163

原创 1388: [蓝桥杯2018决赛]约瑟夫环

1388: [蓝桥杯2018决赛]约瑟夫环题目描述n 个人的编号是 1~n,如果他们依编号按顺时针排成一个圆圈,从编号是1的人开始顺时针报数。报数是从1报起,当报到 k 的时候,这个人就退出游戏圈。下一个人重新从1开始报数。求最后剩下的人的编号。这就是著名的约瑟夫环问题。本题目就是已知 n,k 的情况下,求最后剩下的人的编号。输入输入两个整数n,k(0<n,k<10^6)输出要求输出一个整数,表示最后剩下的人的编号。样例输入 Copy10 3样例输出 Copy4ac代

2021-05-26 17:04:16 369 1

原创 HDU - 1159(LCS)

Common SubsequenceA subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = <x1, x2, …, xm> another sequence Z = <z1, z2, …, zk> is a subsequence of X if there exists a strictly i

2021-05-26 11:46:43 136

原创 POJ - 2533(LIS)

最大上升子序列(LIS)A numeric sequence of ai is ordered if a1 < a2 < … < aN. Let the subsequence of the given numeric sequence (a1, a2, …, aN) be any sequence (ai1, ai2, …, aiK), where 1 <= i1 < i2 < … < iK <= N. For example, sequence (1,

2021-05-25 21:05:47 133

原创 1356: [蓝桥杯2017决赛]图书排列

1356: [蓝桥杯2017决赛]图书排列将编号为1~10的10本书排放在书架上,要求编号相邻的书不能放在相邻的位置。请计算一共有多少种不同的排列方案。输出输出一个整数表示答案ac代码#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<cmath>using namespace std;int s[15];void

2021-05-25 16:31:23 110

原创 1355: [蓝桥杯2017决赛]合根植物

1355: [蓝桥杯2017决赛]合根植物题目描述w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗?输入第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1<m,n<1000)。接下来一行,一个整数k,表示下面还有k行数据(0<k<100

2021-05-25 16:17:01 132

原创 1354: [蓝桥杯2017决赛]分考场

1354: [蓝桥杯2017决赛]分考场n个人参加某项特殊考试。为了公平,要求任何两个认识的人不能分在同一个考场。求最少需要分几个考场才能满足条件。输入第一行,一个整数n(1<n<100),表示参加考试的人数。第二行,一个整数m,表示接下来有m行数据以下m行每行的格式为:两个整数a,b,用空格分开 (1<=a,b<=n) 表示第a个人与第b个人认识(编号从1开始)。输出一行一个整数,表示最少分几个考场。样例输入 Copy581 21 31 42 3

2021-05-25 15:40:07 113

原创 1314:[蓝桥杯2016决赛]阶乘位数

1314: [蓝桥杯2016决赛]阶乘位数题目描述9的阶乘等于:362880它的二进制表示为:1011000100110000000这个数字共有19位。请你计算,9999 的阶乘的二进制表示一共有多少位?输出输出一个整数表示答案#include<stdio.h>#include<math.h>#include<string.h>#include<algorithm>using namespace std;int main(){ .

2021-05-21 10:24:35 202

原创 1306: [蓝桥杯2016决赛]一步之遥

1306: [蓝桥杯2016决赛]一步之遥从昏迷中醒来,小明发现自己被关在X星球的废矿车里。矿车停在平直的废弃的轨道上。他的面前是两个按钮,分别写着“F”和“B”。小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退。按F,会前进97米。按B会后退127米。透过昏暗的灯光,小明看到自己前方1米远正好有个监控探头。他必须设法使得矿车正好停在摄像头的下方,才有机会争取同伴的援助。或许,通过多次操作F和B可以办到。矿车上的动力已经不太足,黄色的警示灯在默默闪烁…每次进行 F 或 B 操作都会消耗

2021-05-19 20:51:15 128

原创 1281: [蓝桥杯2015决赛]奇怪的数列

1281: [蓝桥杯2015决赛]奇怪的数列从X星截获一份电码,是一些数字,如下:13111331131321131113122113…YY博士经彻夜研究,发现了规律:第一行的数字随便是什么,以后每一行都是对上一行“读出来”比如第2行,是对第1行的描述,意思是:1个1,1个3,所以是:1113第3行,意思是:3个1,1个3,所以是:3113请你编写一个程序,可以从初始数字开始,连续进行这样的变换。输入第一行输入一个数字组成的串,不超过100位第二行,一个数字n,表示需要你连续变

2021-05-19 20:48:06 171

原创 1266: [蓝桥杯2015决赛]穿越雷区

1266: [蓝桥杯2015决赛]穿越雷区X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废。某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征),怎样走才能路径最短?已知的地图是一个方阵,上面用字母标出了A,B区,其它区都标了正号或负号分别表示正负能量辐射区。例如:A + - + -- + - - +- + + + -+ - + - +B + - + -坦克车只能水平或垂直方向上移动到相邻的区。输入输入第一行是一个整数n

2021-05-19 20:44:40 144

原创 用栈的思想写回文串

#include<stdio.h>#include<math.h>#include <string.h>char c1[100];bool node(char s[]){ int s1[100]; int top = -1; int mid = strlen(s) / 2 - 1; for (int i = 0; i <= mid; i++) { top++; s1[i] = s[i] - '0'; } int next; if (

2021-05-14 14:29:42 126

原创 全排列的两种写法

1.c++函数next_permutation,重新排列范围内的元素[第一,最后一个)返回按照字典序排列的下一个值较大的组合。返回值:如果有一个更高的排列,它重新排列元素,并返回true;如果这是不可能的(因为它已经在最大可能的排列),它按升序排列重新元素,并返回false。 #include <cstdio> #include <algorithm> #include <iostream> using namespace std;int main(){i

2021-05-12 17:51:30 152

原创 快速排序

快速排序(此方法为啊哈算法讲解的方法)代码实现:#include<stdio.h>#include<string.h>int s[1000005];void quick(int left,int right){ if(left>right) return ; int temp=s[left]; int j=right; int i=left; int t; while(i!=j) {

2020-12-04 20:39:09 195 2

原创 c语言常用小tips

1.直接要求输入含有空格的字符串#include<stdio.h>#include<string.h>int main(){ char s[1005]; scanf("%[^\n]",s); puts(s); return 0;}2,输入含有空格的字符串之前有输入#include<stdio.h>#include<string.h>int main(){ int n; scanf("%d",

2020-11-26 20:47:18 583

原创 POJ - 3278

备赛的搜索题总结**Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has

2020-11-12 19:31:15 111

原创 动态规划

动态规划(引例:三角形求和)题目1177: 三角形时间限制: 1Sec 内存限制: 128MB 提交: 1609 解决: 710题目描述73 88 1 02 7 4 44 5 2 6 5(图一)图一表示一个5行的数字三角形。假设给定一个n行数字三角形,计算出从三角形顶至底的一条路径,使该路径经过的数字总和最大。每一步只能由当前位置向左下或右下。输入你的程序要能接受标准输入。第一行包含一个整数T,表示总的测试次数。对于每一种情况:第一行包含一个整数N,其中1 < N &lt

2020-10-27 21:45:37 135

原创 2.记忆化搜索

link滑雪问题记忆化搜索的思路是:把每个点当作起点,并且记录这个点到终点的路径。需要注意的是:剪枝条件,以及对每个点的记录。上题代码如下 #include <stdio.h>#include<string.h>#include <algorithm>#define inf 0x3f3f3fusing namespace std;int n, m, ex, ey,cnt;int dir[4][2]= {{0,1}, {1,0}, {0,-1}, {

2020-09-26 10:36:13 82

原创 1.背包

背包问题1.01背包link这个题目为最典型的01背包问题问题的关键是先抽出来5块钱去买价值最高的东西背包的代码存的是我有这么多的钱数能买到的最多东西是多少;#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;bool cmp(int a,int b){ return a<b;}int s[1005]; int dp[1000];int

2020-09-26 09:58:33 89

原创 马拉车算法

马拉车:枚举该字符串的每一个子串,并且判断这个子串是否为回文串一种是回文串长度是奇数的情况,另一种是回文串长度是偶数的情况,枚举中点再判断是否是回文串给出一个只由小写英文字符a,b,c…y,z组成的字符串S,求S中最长回文串的长度.回文就是正反读都是一样的字符串,如aba, abba等Input输入有多组case,不超过120组,每组输入为一行小写英文字符a,b,c…y,z组成的字符串S两组case之间由空行隔开(该空行不用处理)字符串长度len <= 110000Output每一行

2020-08-09 22:34:50 92

原创 搜索(队列)

深搜广搜的队列写法模板Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has

2020-05-23 23:25:17 270

原创 B - Palindrome

动态规划A palindrome is a symmetrical string, that is, a string read identically from left to right as well as from right to left. You are to write a program which, given a string, determines the minimal number of characters to be inserted into the string in

2020-05-23 23:18:25 149

原创 最短路树状图

2020-05-13 23:27:14 242

原创 最短路之Dij

## 最短路总结 - >Dij#include<stdio.h>#include<string.h>#define MAXN 1000#define INF 0x3f3f3fint e[MAXN][MAXN];//存图int dis[MAXN];//记录起点到i的最长的距离int book[MAXN];//标记点int n,m;//n为顶点,m为边void dij(){int i,j,k,u,v;int flag;memset(book,0,siz

2020-05-13 23:25:20 287

原创 LightOJ - 1282

AYIT-2020 第八周609训练—D1快速幂#include<stdio.h>long long quickm(long long a,long long b){long long ans=1;long long bns=a;while(b){if(b&1) //位运算ans=ansbns%1000;bns=bnsbns%1000; ...

2020-04-09 23:07:38 152

空空如也

空空如也

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

TA关注的人

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