- 博客(36)
- 问答 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 并查集解决最优灌溉问题(最小生成树问题)
并查集解决最优灌溉问题(最小生成树问题)以下都是个人理解,解释别人写好的代码,随便写写 1.什么是并查集 是一种数据结构,其实也就是一种树结构 把i节点的父节点保存在array[i]数组里,根节点的父节点为自身。 对于这种数据结构可以实现的功能有两个 (1)查找一个节点的根节点,通过数组里保存的父节点一层一层向上查找,知道找到一个节点的父节点是自己,那这个节点就是根节点了。 (2)判断两
2017-10-10 21:41:44
594
原创 [蓝桥杯] 剪邮票问题
从网上看到的别人的代码,稍微修改了一下,先看一下原博主怎么写的吧 **原博主问题描述与代码** 下面的代码 我只是加了一些注释,少于了两个把邮票块数值转换为行列坐标的数组,因为水平不够,那两个数组的使用让我理解起来很困难,所以我就去掉了# include <iostream># include <cstring>using namespace std;int result = 0;int
2018-03-10 10:19:00
535
原创 hdu-1233最小生成树并查集求解
# include <iostream># include <algorithm>using namespace std;int root[110] = {0};typedef struct Node{ int a; int b; int c;}Node;Node bian[5100];bool comp(Node a,Node b){ return a
2017-11-12 19:41:11
265
原创 hdu2544-最短路径spaf
spaf算法解题#include<iostream>#include<queue>using namespace std;int g[101][101]={0};bool is[101] ;int dis[101];void spaf(int n,int w){ queue<int> queue; queue.push(w); memset(is,false,s
2017-11-10 19:53:05
455
原创 dp-01背包问题代码
这是没有经过空间优化的代码,不过我感觉容易理解#include <iostream>using namespace std;int max(int a,int b){ return a>b?a:b;}void find(int best[12][12],int weight[10],int value[10],int i,int n){ int a[10]={0};
2017-11-09 21:22:17
415
原创 spaf算法求最短路径
# include <iostream># include <queue>using namespace std;#define N 7int g[7][7] = {{0,24,8,15,-1,-1,-1},{24,0,-1,-1,6,-1,3},{8,-1,0,-1,7,3,-1},{15,-1,-1,0,-1,-1,4},{-1,6,7,-1,0,2,9},{-1,-1,3,
2017-11-02 11:05:07
732
原创 c++中优先队列的使用(自定义排序函数)
这只是写一下自己遇到的问题#include<queue>//先包含一个头文件priority_queue<int> queue;//定义一个优先队列默认从大到小排序,因为是优先队列呀 如果我们想从小到大排序就需要自定义排序函数了bool operator > ( Node a,Node b) //这里的参数如果是Node* 并不知道为什么{ return a.num > b.nu
2017-10-17 22:22:53
5984
原创 杭电OJ-1285(队伍排名)
题目链接 因为输出格式不对错了几次,用到了拓扑排序的思路,不过写本题目的时候最耗时间的是研究自定义优先队列排序的方法。#include<iostream>#include<queue>#include<functional>using namespace std;typedef struct Node{ queue<int> list;//记录后继结点 int degre
2017-10-17 21:44:55
564
原创 并查集求最小生成树
什么是并查集请点这里 prime算法求最小生成树,本程序的题目条件来源于这篇文章 之前写过prime算法求最小生成树的代码,昨天知道了并查集算法后,就用并查集算法再写一遍求最小生成树的题目。# include <stdio.h># include <stdlib.h># include <algorithm>//读本程序之前 先看一下prime算法求最小生成树那个文章链接,看题目要求in
2017-10-11 21:23:54
630
原创 汇编12--端口
12.1端口的读写 CPU可以直接读写以下3个地方的数据: (1)CPU内部的寄存器 (2)内存单口 (3)端口对端口的读写不能用mov、push、pop等内存读写指令。端口的读写指令只有两条:in 和 out ,分别用于从端口读取数据和往端口写入数据。 访问端口: in 寄存器,端口号(存放端口号的寄存器) //从该端口号读取一字节数据到寄存器 out 端口号(存放端口号的寄存器),
2017-04-09 21:26:24
831
原创 sqlserver数据库实验一
1. 一些sql语法sqlserver并不支持 2. 当用insert插入date型数据的时候,要用单引号括起来 …values(‘2012/10/1’)
2017-04-04 21:49:47
671
原创 汇编11--内中断
11.1内中断的产生 CPU可以在执行完当前正在执行的指令之后,检测到从CPU外部发送过来或内部产生的一种特殊信息,并且可以立即对所接受的信息进行处理,这种特殊的信息,我们可以称其为:中断信息。中断的意思是,CPU不再接着向下执行,而是转去处理这个特殊信息 当发生以下信息时,将产生相应的中断信息 (1)除法错误,比如div指令发生溢出 (2)单步执行 (3)执行into指令 (4)执行i
2017-04-03 17:47:55
503
原创 AES加密--备忘概述
明文加密,经过十轮首先,明文输入是按列变成矩阵形式的。 之后前九轮的变化所需步骤一样 前九轮变化所需步骤有四步 一、 1.sbox变化 看sbox表格,先找行,后找列,数据矩阵有16个字节,每个字节由两个16进制表示,第一个16进制数字表示sbox的行下标,第二个16进制数表示sbox的列下标,由这两个小标即可找到对应的替代的sbox盒中的两个16进制数字 2行位移 经过第一步变化后,
2017-03-27 22:13:20
619
原创 汇编--10 标志寄存器
10.1 flag寄存器是16位寄存器,他的每一位都有专门的含义,其中使用到的只有0.2.4.6.7.8.9.10.11位有特殊含义。我们主要学习标志位寄存器中的CF PF ZF SF OF DF标志位10.1.1ZF标志位 flag的第六位是ZF。0标志位,它记录相关指令执行后,其结果是否为0,若果结果为0,那么zf = 1,如果结果不为0,zf = 0.10.1.2PF标志位 flag的第
2017-03-27 16:43:24
769
原创 汇编--9 call指令和ret指令
9.1ret和retf cpu执行ret指令时,相当于进行 pop IP cpu执行retf指令时,相当于进行 pop IP pop CS9.2call指令 将当前ip 或cp、ip压入栈后进行转移9.3根据位移进行转移的call指令 call 标号 相当于 push IP jmp near ptr 标号9.4 转移目的地址在指令中的call指令 cal
2017-03-26 21:46:21
577
原创 汇编--8 转移指令的原理
8.1 操作符offset 操作符是由编译器处理的符号,他的功能是读的标号的偏移地址 start:mov ax,offset start 相当于mov ax,38.2 jmp指令 jmp指令为无条件转移指令,可以只修改ip也可以同时修改cs ip。8.3根据位移进行转移的jmp指令 jmp short 标号(转到标号处执行指令 jmp指令实现的是短转移,对ip的修改范围是-128—127
2017-03-26 20:31:01
563
原创 杭电acm-1002题-大数加法
# include <stdio.h> # include <string.h># include <stdlib.h>void calculate(int num,int last){ char a[1000] = {'0'}; char b[1000]={'\0'}; char sum[1000]={0}; char* max_array = NULL;
2017-03-06 22:10:37
437
原创 汇编--7 数据处理
7.1汇编语言中数据位置的表达7.1.1 idata立即数 对于直接包含在机器指令中的数据(执行前在cpu指令缓冲器中),在汇编语言中成为立即数,在汇编指令中直接给出。比如:mov ax,17.1.2寄存器 指令要处理的数据存在寄存器中,汇编指令给出相应的寄存器名称7.1.3段地址(SA)和偏移地址(EA) 指令要处理的数据在内存中,在汇编指令中可用[X]的格式给出EA,SA在牟恩 段寄存器中
2017-02-27 17:02:12
439
原创 汇编6--灵活定义内存地址
6.1以字符形式给出数据 db ‘un’相当于db 75H,6EH即字符的ascill的数值,注意ascill码只有8位,治理定义的是字节型数据6.2大小写转换 大小写字符的ascill码只有第五位不一样,大写字符第五位为0,小写为1. 小写变成大and al,11011111B 大写变小写or al,00100000B
2017-02-16 12:34:16
565
原创 汇编-5 包含多个段的程序
5.1定义字型数据 dw 0123H 这行代码就定义了0123H这个字型数据。多个数据之间用逗号隔开。 用dw定义的数据在数据段的最开始,所以可以用cs:[bx]这样的段前缀来获取dw定义的数据。 但是因为dw定义的数据放在代码段里,编译器可能会把dw定义数据的代码编译成一些汇编指令的机器码,所以汇编程序中要给程序设定入口,用标识符实现 assume cs:code code segeme
2017-02-15 23:01:01
608
原创 汇编4--[BX]和loop指令
4.1[bx]是什么? 之前我们写过mov ax,[0]这样的汇编指令,表示数据从一个内存单元传送到寄存器。但这样的汇编指令写在编译器里是不能通过的。[bx]的作用就是代替汇编指令中要用到的像[0]这样的内存单元,在使用前先向bx传送值。上面的汇编指令可以改写成 mov bx,0 mov ax,[bx].4.2loop指令 作用相当于c语言中的while,让某一个语句循环执行,在汇编语言中
2017-02-10 23:05:12
512
原创 汇编3-寄存器
3.1内存中字的存储任何两个地址连续的内存单元,N号和N+1号单元,可以将它们看成两个内存单元,也可以看成一个地址为N的字单元中的高位字节单元和低位字节单元。3.2段地址寄存器 DS是段地址寄存器,里面存储的是16位的数据,代表当前段地址。 不能直接通过mov指令将数据存入DS中,mov ds,1000H这样写是错误的。只能先把1000H存入通用寄存器mov BX,1000H 然后 mov DS
2017-02-06 21:29:38
496
原创 汇编2--寄存器
CPU中最主要的部件就是寄存器,程序员通过改变各种寄存器中的内容来实现对CPU的控制 2.1 通用寄存器:8086CPU的寄存器都是16位的。上一代CPU的寄存器都是8位的,所以为了保证兼容性,8086CPU的通用寄存器都可以分为两个可独立使用的8位寄存器来用。2.2 字在寄存器中的存储 出于兼容性的考虑,8086CPU可以一次性处理两种类型的数据 字节:记做byte,一个字节由8个bit
2017-01-20 10:50:34
460
原创 汇编--基础知识
1.1 CPU:一种微处理器,计算机系统就是由CPU和其他受CPU直接或间接控制的芯片,器件,设备组成的。 寄存器:CPU中可以储存数据的器件,一个CPU有多个寄存器。(缓存)1.2 汇编语言的组成:汇编指令 伪指令 其他符号。 汇编语言的核心是汇编指令。1.3 存储器:要想让一个CPU工作必须提供指令和数据,而这些就存放在存储器中,也就是平常我们说的内存。内存的作用仅次于CPU。(C
2017-01-18 00:12:06
404
原创 装饰与继承的区别
相同点: 都是创建一个新的类来加强原有类的功能。 不同点: 装饰是把原有类当成参数传递给新建类。 装饰的应用:当基于某个类的几个新类都用到了相同的技术,比如把几个操作不同数据的Reader类通过继承来新建操作不同数据类型的几个BufferedReader类,这里只是对现有类使用缓冲技术,既可以采用装饰设计模式,把原有的Reader类当做参数传递给一个新建类(有时和多态相关),这样形成的结构比继承
2017-01-03 21:14:35
719
原创 java io流 持续更新
缓冲区BufferedWriter 缓冲区写入, 需要封装流对象 BufferedWriter fw = new BufferedWriter(new FileWriter()); 可以调用封装流对象的方法比如write。每次写入后要刷新,fflush(); fw.newLine();开启新的一行 关闭缓冲区fw.close()其实就是关闭流对象
2017-01-01 20:59:16
361
原创 dijkstra算法求最短路径
希望大家能看完prim算法后再来看这个算法,因为两者思路差不多。 先来看一下自定义的结构体typedef char VexType;typedef int AdjType;typedef struct{ int n; VexType vexs[MaxNode];//保存节点 AdjType arcs[MaxNode][MaxNode];//从矩阵获得节点与节点间的距离
2016-10-27 18:39:52
731
原创 聪明学生问题代码
这个代码结构并不复杂,大家可以直接复制下来运行。大家在看代码之前请先自行了解什么是聪明学生问题.来看一下整体代码# include <stdlib.h>//找出t2--t1最小提问次数int step(int t1,int t2){ if(t2 > t1) { return t2-t1; } else { return 3
2016-10-26 17:00:03
634
1
原创 最小生成树PRIM算法
什么是最小生成树,请大家看看离散数学书. 自定义结构体#define Max 100#define MaxNode 10typedef char VexType;typedef int AdjType;typedef struct{ int n; VexType vexs[MaxNode];//保存节点 AdjType arcs[MaxNode][MaxNode];
2016-10-26 09:21:18
923
1
原创 跳跃链表纯代码
看到一个程序员说他的梦想是活过40岁,另一个说他的梦想是活过今年,不知道他们有没有结婚。。。。 今天就只贴一下自己修改的跳跃链表的代码,因为逻辑我自己也不是很懂。。。 先看一下自定义的结构体typedef struct Skip_Node{ int value; struct Skip_Node* forward[1];//越界访问 下标为几就是指向第几层的指针}Ski
2016-10-24 19:57:36
753
原创 AVL树构建代码及其基本操作
参考了很多代码后自己的总结.个人感觉AVL树的代码比huffman树的代码更难理解,有些地方刚开始看的时候觉得疑惑,为什么网络上的讲解能那么肯定就是那样,后来自己画了很多二叉树后发现,确实就是那样,所以就干脆把某些东西当规律记下来了。-_-发个无语的小表情 一.简单的AVL树自我理解 二叉平衡树呀,就是说每个节点的左子树和右子树的高度差最多为1,一个节点没有左右子树,高度为0,然后每有一层高度加
2016-10-23 21:29:27
1422
原创 对小甲鱼哈弗曼树代码的小修改
只是记录一下自己写作业的过程,我不是一个程序员,我是一个想进德云社的闲散人员 一.自己对huffman树的理解 先用程序读入一篇或多篇英文文章,把文章中出现的每一个字符都当做树结构中的一个节点,并且给每个节点附上一个权值(该字符在文章中出现的次数),通过这些权值,构成最小生成树。这就是huffman树的建立过程。最小生成树建立好以后,每个字符都会有一个由二进制数构成的编码,可以根据这些编码对一串
2016-10-23 11:47:47
988
2
空空如也
python3 安装pcap失败,有详细描述 求解!!
2018-12-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人