- 博客(30)
- 资源 (1)
- 收藏
- 关注
原创 【蓝桥杯】小朋友排队
#include <iostream>#include <algorithm>#include <vector>using namespace std;/* * 题目最终归结到求每个数的逆序对的个数,逆序对的个数有多少个该数就要交换多少次 * 方法:归并求逆序对的个数,求出每个数的逆序对的个数num * 步骤:先求小区间中的每个数的num,再回溯合并两个小区间为一个大区间并更新大区间中
2017-02-04 15:25:44
391
原创 【蓝桥杯】回文数字
#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
390
原创 归并求逆序数
#include <iostream>#include <algorithm>#include <vector>using namespace std;/* * 归并求逆序数 * 方法一:求出每个数的逆序对的个数num,对所有num求和后除以2得到逆序数 * 步骤:先求小区间中的每个数的num,再回溯合并两个小区间为一个大区间并更新大区间中每个数的num */struct Node
2017-02-04 13:22:45
499
原创 归并排序
#include <iostream>#include <algorithm>#include <vector>using namespace std;/* *归并排序 *思想:将待排数组多次二分为单个数(递归),再回溯合并为有序序列 *步骤1:递归二分待排数组 *步骤2:将二分数组合并为有序序列,放在零时数组中 *步骤3:将零时序列赋值给待排序序列 *步骤4:回溯 *//*
2017-02-03 17:39:01
257
原创 【蓝桥杯题解】分糖果
历届试题 分糖果 时间限制:1.0s 内存限制:256.0MB 问题描述 有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: 每个小朋友都把自己的糖果分一半给左手边的孩子。 一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。 反复进行这个游戏,直到所有小朋友的糖果数都相同为止。 你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少
2017-01-31 20:56:39
608
原创 【蓝桥杯题解】兰顿蚂蚁
历届试题 兰顿蚂蚁 时间限制:1.0s 内存限制:256.0MB 问题描述 兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种。 平面上的正方形格子被填上黑色或白色。在其中一格正方形内有一只“蚂蚁”。 蚂蚁的头部朝向为:上下左右其中一方。 蚂蚁的移动规则十分简单: 若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格; 若蚂蚁在白格,左转90度,
2017-01-31 20:51:55
429
原创 【蓝桥杯题解】矩阵翻硬币
历届试题 矩阵翻硬币 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵。 随后,小明对每一个硬币分别进行一次 Q 操作。 对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进行翻转。 其中i和j为任意使操作可行的正整数,行号和列号都是从1开始。 当小明对所有硬币都进行了一次 Q 操
2017-01-31 20:01:27
815
2
原创 [CCF]交通规则
201612-4 试题名称: 交通规划 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家也建设一个高速铁路系统。 建设高速铁路投入非常大,为了节约建设成本,G国国王决定不新建铁路,而是将已有的铁路改造成高速铁路。现在,请你为G国国王提供一个方案,将现有的一部分铁路改造成高速铁路
2016-12-08 15:56:17
647
转载 c++中的左值与右值
左值 (lvalue)和右值 (rvalue) 是 c/c++ 中一个比较晦涩基础的概念,有的人可能甚至没有听过,但这个概念到了 c++11 后却变得十分重要,它们是理解 move, forward 等新语义的基础。左值右值的定义左值与右值这两概念是从 c 中传承而来的,在 c 中,左值指的是既能够出现在等号左边也能出现在等号右边的变量(或表达式),右值指的则是只能出现在等号右边的变量(或表达式).
2016-09-23 20:42:34
194
转载 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
225
转载 运算符重载
http://blog.csdn.net/zgl_dm/article/details/1767201 C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,也是C++最吸引人的
2016-09-23 16:40:28
186
转载 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
3135
原创 nyoj一种排序
一种排序 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大);1.按照编号从小到大排序2.对于编号相等的长方形,按照长方形的长排序;3.如果编号和长都相同,按照长方形的宽排序;4.如果编号、长、宽都相同,
2016-08-02 16:04:52
259
原创 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
464
转载 STL一般总结
转自:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/22/2603525.htmlC++ 以下内容来源网上 经过整合而成一、一般介绍 STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库
2016-08-01 13:12:20
281
原创 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
12036
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
311
原创 筛选素数
/*首先给出惟一素因子分解定理:每个正整数都可以惟一地表示成素数的乘积,其中素数因子从小到大依次出现(这里的“乘积”可以有0个、1个或多个素因子)。*///方案一:遍历2——n,依次判断是否是素数,效率低下,咱们不讨论//方案二:利用素数的倍数不是素数来删除合数/* 1.给出要筛数值的范围n,找出n(实际上根号n即可)以内的素数p1,p2,p3.....2.先用p1去筛,即把p1留下
2016-05-20 19:48:33
328
原创 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
526
原创 关于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
1086
原创 统计利用先序遍历创建的二叉树的宽度
方案一:递归实现 通过设置一个计数数组,记录每一层的结点数#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
1623
原创 统计利用先序遍历创建的二叉树的深度
#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
1435
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
325
原创 二叉树的创建
二叉树的创建采用递归创建 方案一:利用指针函数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
505
转载 c++中的string常用函数用法总结
转至http://www.jb51.net/article/41725.htm 以下是对c++中的string常用函数的用法进行了详细的分析介绍,需要的朋友可以过来参考下 标准c++中string类函数介绍注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作
2016-04-03 21:22:37
400
原创 双向链表(非循环)排序
双向链表的操作问题 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
2918
2
原创 彻底理解Dij算法
理解什么是dij 简单来说,就是求最短路的一种算法理解dij的核心思想 百度给出:以起始点为中心向外层层扩展,直到扩展到终点为止 可咋理解这句话呢?层层扩展,咋扩展?什么是层? 别急,且听我一一道来: 1.dij以节点距源点的远近为依据,将其分为一层一层一个节点便是一层 2.我们来看其流程: a.首先找出距源点S最近的节点A,搜索A的所有出点,判断能否通过SA使S到A的出点的距离减
2016-01-30 16:41:43
11310
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
5664
6
原创 nyoj-115城市平乱-各种解法
城市平乱 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市。他在用这N个部队维护着M个城市的治安,这M个城市分别编号从1到M。现在,小工军师告诉南将军,第K号城市发生了暴乱,南将军从各个部队都派遣了一个分队沿最近路去往暴乱城市平乱。现在已知在任意两个城市之间的路行军所需的时间,你作为南将军麾下最厉害的程序员
2016-01-29 22:11:04
401
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人