自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 【蓝桥杯】小朋友排队

#include <iostream>#include <algorithm>#include <vector>using namespace std;/* * 题目最终归结到求每个数的逆序对的个数,逆序对的个数有多少个该数就要交换多少次 * 方法:归并求逆序对的个数,求出每个数的逆序对的个数num * 步骤:先求小区间中的每个数的num,再回溯合并两个小区间为一个大区间并更新大区间中

2017-02-04 15:25:44 367

原创 【蓝桥杯】回文数字

#include <iostream>#include <algorithm>#include <vector>#include <sstream>#include <math.h>using namespace std;/* *【筛选特殊回文数字】 *步骤1:求出回文数(注意求回文数的方法,方法low了很耗时) *步骤2:判断是否满足条件 */int main(){

2017-02-04 15:14:33 377

原创 归并求逆序数

#include <iostream>#include <algorithm>#include <vector>using namespace std;/* * 归并求逆序数 * 方法一:求出每个数的逆序对的个数num,对所有num求和后除以2得到逆序数 * 步骤:先求小区间中的每个数的num,再回溯合并两个小区间为一个大区间并更新大区间中每个数的num */struct Node

2017-02-04 13:22:45 482

原创 归并排序

#include <iostream>#include <algorithm>#include <vector>using namespace std;/* *归并排序 *思想:将待排数组多次二分为单个数(递归),再回溯合并为有序序列 *步骤1:递归二分待排数组 *步骤2:将二分数组合并为有序序列,放在零时数组中 *步骤3:将零时序列赋值给待排序序列 *步骤4:回溯 *//*

2017-02-03 17:39:01 249

原创 【蓝桥杯题解】分糖果

历届试题 分糖果 时间限制:1.0s 内存限制:256.0MB 问题描述   有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:  每个小朋友都把自己的糖果分一半给左手边的孩子。  一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。  反复进行这个游戏,直到所有小朋友的糖果数都相同为止。  你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少

2017-01-31 20:56:39 594

原创 【蓝桥杯题解】兰顿蚂蚁

历届试题 兰顿蚂蚁 时间限制:1.0s 内存限制:256.0MB 问题描述  兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种。  平面上的正方形格子被填上黑色或白色。在其中一格正方形内有一只“蚂蚁”。   蚂蚁的头部朝向为:上下左右其中一方。  蚂蚁的移动规则十分简单:   若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格;   若蚂蚁在白格,左转90度,

2017-01-31 20:51:55 412

原创 【蓝桥杯题解】矩阵翻硬币

历届试题 矩阵翻硬币 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述   小明先把硬币摆成了一个 n 行 m 列的矩阵。  随后,小明对每一个硬币分别进行一次 Q 操作。  对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进行翻转。  其中i和j为任意使操作可行的正整数,行号和列号都是从1开始。  当小明对所有硬币都进行了一次 Q 操

2017-01-31 20:01:27 776 2

原创 [CCF]交通规则

201612-4 试题名称: 交通规划 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家也建设一个高速铁路系统。   建设高速铁路投入非常大,为了节约建设成本,G国国王决定不新建铁路,而是将已有的铁路改造成高速铁路。现在,请你为G国国王提供一个方案,将现有的一部分铁路改造成高速铁路

2016-12-08 15:56:17 639

转载 c++中的左值与右值

左值 (lvalue)和右值 (rvalue) 是 c/c++ 中一个比较晦涩基础的概念,有的人可能甚至没有听过,但这个概念到了 c++11 后却变得十分重要,它们是理解 move, forward 等新语义的基础。左值右值的定义左值与右值这两概念是从 c 中传承而来的,在 c 中,左值指的是既能够出现在等号左边也能出现在等号右边的变量(或表达式),右值指的则是只能出现在等号右边的变量(或表达式).

2016-09-23 20:42:34 183

转载 C++引用详解

http://www.cnblogs.com/gw811/archive/2012/10/20/2732687.html引用的概念引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;如下:定义引用ra,它是变量a的引用,即别名。    int a;    int &ra=a;  (1)&在此不是求地址运算符,而是起

2016-09-23 19:07:25 216

转载 运算符重载

http://blog.csdn.net/zgl_dm/article/details/1767201   C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,也是C++最吸引人的

2016-09-23 16:40:28 175

转载 CAsyncSocket 下的Create()函数

首先,讨论Create函数,分析socket句柄如何被创建并和CAsyncSocket对象关联。Create的实现如下: BOOL CAsyncSocket::Create(UINT nSocketPort, int nSocketType, long lEvent, LPCTSTR lpszSocketAddress) { if (Socket(nSocketType, lEvent))

2016-09-09 13:49:23 3086

原创 nyoj一种排序

一种排序 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大);1.按照编号从小到大排序2.对于编号相等的长方形,按照长方形的长排序;3.如果编号和长都相同,按照长方形的宽排序;4.如果编号、长、宽都相同,

2016-08-02 16:04:52 248

原创 stringstream,istringstream,ostringstream的使用

1.几个字符串流的头文件是sstream 2.istringstream的对象:istringstream iss(string t) 3.iss功用:iss>>A>>B>>C·····>>··将iss中的字符串以空格为分割符输出到A,B,C·····中。其中A,B,C可以是不同类型的数据,当类型不符时,自动分割。 4.ostringstream的对象:ostringstream oss。

2016-08-02 14:42:22 444

转载 STL一般总结

转自:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/22/2603525.htmlC++ 以下内容来源网上 经过整合而成一、一般介绍      STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库

2016-08-01 13:12:20 271

原创 C++ vector之创建二维数组

头文件:#include <iostream>#include <algorithm>#include <vector>using namespace std;申明二维数组:vector<vector<int>>vec;//嵌套申明此时的vec.size为0,空有其名,没有空间大小,并不能用来访问元素,此时可以向vec中添加一维向量 方案一:vec.push_back(vector<int>

2016-07-31 21:20:53 11958 1

转载 快速幂算法

转载自:http://blog.csdn.net/hkdgjqr/article/details/5381028 快速求正整数次幂,当然不能直接死乘。举个例子:3 ^ 999 = 3 * 3 * 3 * … * 3直接乘要做998次乘法。但事实上可以这样做,先求出2^k次幂:3 ^ 2 = 3 * 3 3 ^ 4 = (3 ^ 2) * (3 ^ 2) 3 ^ 8 = (3 ^ 4) * (3

2016-05-20 20:49:48 303

原创 筛选素数

/*首先给出惟一素因子分解定理:每个正整数都可以惟一地表示成素数的乘积,其中素数因子从小到大依次出现(这里的“乘积”可以有0个、1个或多个素因子)。*///方案一:遍历2——n,依次判断是否是素数,效率低下,咱们不讨论//方案二:利用素数的倍数不是素数来删除合数/* 1.给出要筛数值的范围n,找出n(实际上根号n即可)以内的素数p1,p2,p3.....2.先用p1去筛,即把p1留下

2016-05-20 19:48:33 297

原创 memset函数的初步使用

函数原型为:void *memset(void *s, int ch, size_t n) 意思是将s在内存中的前n个字节填充ch; 着重理解: 1.ch可以是字符数据,整型数据,浮点型数据,十六进制、八进 制数据等数据。但不管那种数据,都是将其转化为二进制数后取最后八位填充到s的字节中去,当不足八位时,用0在前面补齐 例如:0xf转换为二进制位1111,不足八位,在前面用0补

2016-05-19 15:19:09 504

原创 关于C++中结构体初始化小结

C++中的结构体与C中结构体不同,C++中结构体与类已经没有什么大的区别了 C++中结构体的初始化分为三种: 类化结构体:#include <iostream>using namespace std;struct Point{ int x, y; Point(int x1 = 0, int y1 = 0) { x = x1, y = y1;

2016-05-19 12:10:58 1050

原创 统计利用先序遍历创建的二叉树的宽度

方案一:递归实现 通过设置一个计数数组,记录每一层的结点数#include <iostream>#include <stdlib.h>using namespace std;typedef struct BiNode{ char data; BiNode *lchild,*rchild;}BiNode,*BiTree;int count[1000]={0},Max=0;/

2016-04-14 16:12:58 1612

原创 统计利用先序遍历创建的二叉树的深度

#include <iostream>#include <stdlib.h>using namespace std;typedef struct BiNode{ int data; BiNode *lchild,*rchild;}BiNode,*BiTree;BiTree creatT()//先序遍历创建二叉树{ BiTree T; char ch;

2016-04-14 15:20:37 1415 1

原创 二叉树遍历的递归与非递归实现

二叉树的递归实现代码很简单,非递归实现主要运用栈来实现: 1.先将结点信息保存 2.之后再退回一步 3.重复一二步#include <iostream>#include <stdlib.h>using namespace std;#define MAXSIZE 100typedef struct BiNode{ char data; BiNode *lchild,*

2016-04-14 14:54:38 318

原创 二叉树的创建

二叉树的创建采用递归创建 方案一:利用指针函数include <iostream>#include <stdlib.h>using namespace std;typedef struct BiNode{ char data; BiNode *lchild,*rchild;}BiNode,*BiTree;BiTree CreatBiTree()//先序遍历创建二叉树,定

2016-04-14 11:24:32 492

转载 c++中的string常用函数用法总结

转至http://www.jb51.net/article/41725.htm 以下是对c++中的string常用函数的用法进行了详细的分析介绍,需要的朋友可以过来参考下 标准c++中string类函数介绍注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作

2016-04-03 21:22:37 385

原创 双向链表(非循环)排序

双向链表的操作问题 Description 建立一个长度为n的带头结点的双向链表,使得该链表中的数据元素递增有序排列。(必须使用双向链表完成,数据类型为整型。) Input 第一行:双向表的长度; 第二行:链表中的数据元素。 Output 输出双向链表中的数据元素的值。 Sample Input 1 2 3 10 2 4 6 3 5 8 10 21 12 9Sample

2016-03-19 14:25:48 2896 2

原创 彻底理解Dij算法

理解什么是dij 简单来说,就是求最短路的一种算法理解dij的核心思想 百度给出:以起始点为中心向外层层扩展,直到扩展到终点为止 可咋理解这句话呢?层层扩展,咋扩展?什么是层? 别急,且听我一一道来: 1.dij以节点距源点的远近为依据,将其分为一层一层一个节点便是一层 2.我们来看其流程: a.首先找出距源点S最近的节点A,搜索A的所有出点,判断能否通过SA使S到A的出点的距离减

2016-01-30 16:41:43 10938 2

原创 关于普通dij算法为什么不能解决负权边的分析

我们首先来分析下含负权边的无向图: 1.先看图 我们求A点到C点的最短距离,很明显答案为1. 2.我们用dij来跑下,看过程:先把A点标记哈,不需要访问本身首先找到距A最近的且直接相连的点(也就是两点间没有中转点)C,把C标记哈找出C点的出点A,,B,A被标记了不管,此时A到B的距离为3,大于A到C的距离加上C到B的距离0,所以更新A到B的距离为0更新后A到C的距离仍然为2,A到B

2016-01-30 16:01:18 5550 6

原创 nyoj-115城市平乱-各种解法

城市平乱 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市。他在用这N个部队维护着M个城市的治安,这M个城市分别编号从1到M。现在,小工军师告诉南将军,第K号城市发生了暴乱,南将军从各个部队都派遣了一个分队沿最近路去往暴乱城市平乱。现在已知在任意两个城市之间的路行军所需的时间,你作为南将军麾下最厉害的程序员

2016-01-29 22:11:04 394

转载 kmp算法

【经典算法】--KMP

2016-01-28 10:00:07 206

《编译原理及实现》(第二版)所有附录代码

《编译原理及实现》(孙悦红第二版)所有附录代码(B,C,D,E)

2017-05-29

空空如也

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

TA关注的人

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