自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 求树的重心

树的重心树的重心:对于一棵树n个节点的无根树,找到一个点,将无根树变为以该点为根的有根树时,最大子树的结点数最小。重心的性质:1.树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个重心,他们的距离和一样。2.把两棵树通过一条边相连,新的树的重心在原来两棵树重心的连线上。3.一棵树添加或者删除一个节点,树的重心最多只移动一条边的位置。4.一棵树最多有两个重心,且相邻。求解思路: 存储采用链式前向星来进行,核心是利用dfs的思想从一个选定的点遍历整个树,在开始回溯的时候记录每个点向下

2022-01-02 16:28:01 331

原创 HDOJ-2062 :Subset sequence(DP)

题目:求子集序列Consider the aggregate An= { 1, 2, …, n }. For example, A1={1}, A3={1,2,3}. A subset sequence is defined as a array of a non-empty subset. Sort all the subset sequece of An in lexicography order. Your task is to find the m-th one.Input:The input

2021-07-14 15:09:24 181

原创 找出最接近的相似串(DP思想)

题目:找出最接近的相似串假设从一个串变化成另一个串所允许的操作只有两种:插入一个字符或者删除一个字符。无论是插入还是删除一个符号,均算作一次操作。一般情况下,度量两个串S1和S2的相似性,可以通过从一个串变换成另一个串所需要的最少操作次数来衡量,需要的操作次数越少,则越相似。现给你一个串S,和一个串的集合T,让你找出集合T中与S最相似的串。测试输入:abcd4abdabdcabedaebcd预期输出:abdaebcd思想:这个题的实质就是求从一个字符串变为另一个字符串所需要的步骤数

2021-07-13 23:49:43 987

原创 Dijkstra(迪杰斯特拉)算法简介

目录适用情形思想具体操作适用情形适用于权值为非负的图的单源最短路径思想在已知起点与终点的情况下。须有三个一维数组S,U,dis,S用于记录已经查找过的点,U则记录未查找到的点,dis用于记录从起点到各个点间的距离。开始时,S中仅有起点,U中则是其它所有点,dis[起点]初始化为0,dis中其它元素则为起点到各点的距离,如果没有路径则可以记录为INF(无穷大)或者-1。然后寻找与起点最近的点,将它加入数组S中,再更新dis的最短路径。然后再找与起点最近的点,将它加入数组S中,再更新dis的最短路径。知

2021-05-25 17:24:40 959

原创 弗洛伊德算法(Floyd)简介

弗洛伊德算法(Floyd)简介Floyd算法适用于解决求最短路径问题,相比于Digkstra算法思路更加简单,更容易理解,但是效率会明显低很多,可以作为初步学习的一种方法。目录弗洛伊德算法(Floyd)简介主要思想具体步骤具体例题主要思想主要的想法就是创建一个矩阵用于记录最短距离,如果需要求最短距离的路径的话则需要创建另外一个矩阵用于记录路径,矩阵中放置中介点即可。具体步骤1.在主函数中创建一个矩阵,存储输入的两点间的距离。2.在Floyd函数中,初始化记录最短距离的矩阵和记录中介点的矩阵。初

2021-05-18 22:02:51 4631

原创 十二届蓝桥杯省赛B组C++解析(填空题部分)

目录A:空间B:卡片A:空间该题是一道计算机基础原理题,这里需要了解的是:** 1MB=1024KB=1024*1024BKB即千字节,B为字节1B=8bit(位)因为通常一个字节(刚好最大256位)可以储存一个ASCII码**故计算过程应如下:25610241024/4=67108864答案:67108864B:卡片暴力解决即可:#include<iostream>using namespace std;int a[10]={0};int process(

2021-05-09 23:38:58 426

原创 快速排序法

相信很多同学已经学习过了选择法或者冒泡法排序,但是这两种排序方法的效率都太低了,因此这里介绍一种效率较高的方法——快速排序法。快速排序法属于一种著名的递归式问题解决方法——分而治之(divide and conquer,D&C)。使用D&C解决问题的过程包括两个步骤:1.找出基线条件,这种条件必须尽可能简单。2.不断将问题分解,直到符合基线条件。下面介绍快速排序法的步骤:1.从数组中选择一个元素,这个元素被称为基准值。2.找出一个比基准值大的元素,将它放到基准值的位置,这样重复

2021-03-12 15:29:22 79

原创 万年历小程序(黑框)

本程序可完成打印年历,月历,以及查询两个日期间相距多少天,以及查询日期是星期几。代码如下:#include<stdio.h>//设计界面函数int UI(){ int n; printf("------------------------\n"); printf("-----欢迎使用万年历-----\n"); printf("| 1.查询年历 |\n"); printf("| 2.查询月历 |\n");

2021-02-23 15:40:00 354

原创 sscanf实用功能简介

sscanf实用功能简介1.适用范围:适用于对某一字符串特定要求取值。2.基本格式:sscanf(某一字符串的地址, “取值条件”, 存储地址);3.取值条件的种类:(1)全取(只能取到第一个空格处):%s.(与%[^ ]等价,%[^ ]表示到第一个空格处)#include<stdio.h>int main(){ char a[100]={"hello world"}; sscanf(a,"%s",a); printf("%s\n",a); return 0

2021-01-07 11:46:49 196

原创 十六进制字符转化为十进制数字

在进行转化之前我们需要先了解这样几点:1.数字0~9的的值,即为0到9,然后10为’a’。2.转化为十进制数就是将上面的这个值乘上16。下面是进行转化的代码:int i;for (i = n; i >= 0; --i) if (a[i] >= '0' && a[i] <= '9') sum += (a[i] - '0') * pow(16, n - i); else if (a[i] >= 'A' && a[i] <= '

2021-01-07 10:27:03 5876

原创 产生随机数(C语言)

产生随机数的两种方式不需要规定产生随机数范围产生有范围的随机数不需要规定产生随机数范围1.所有产生随机数的方法都是在以下两个头文件下实现的:#include<cstdlib.h#include <cstdio.h>2.不需要规定范围用rand()即可,如下面一个例子:#include <cstdlib>#include <cstdio>int main(){ int i; for(i = 1; i <= 10; i++)

2021-01-03 18:59:21 1670

原创 习题8_6与习题9_2

void delchar( char *str, char c ){ char* p;p=str;char* tool; while(p!='\0') { if(c==*p) { tool=p; while(tool!='\0') { *tool=*(tool+1); tool++; } } else p++; }}

2020-12-29 16:14:08 86

原创 习题8-4 报数

报数游戏的规则以下是我的解决代码:#include <stdio.h>#define MAXN 20void CountOff( int n, int m, int out[] );int main(){ int out[MAXN], n, m; int i; scanf("%d %d", &n, &m); CountOff( n, m, out ); for ( i = 0; i < n; i++ )

2020-12-29 11:56:45 132 1

空空如也

空空如也

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

TA关注的人

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