自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 修炼算法内功——two pointers

内容:two pointers简介 a+b=M 序列合并问题 归并排序 快速排序1、two pointers简介 two pointers是算法编程中一种非常重要的思想,它更倾向于一种编程技巧,为我们编程提供了非常高的算法效率。2、a+b=M以一个例子引入:给定一个递增的正整数序列和一个正整数M,求序列中的两个不同位置的数a和b,使得他们的和恰好为M,输出所有满足条件的方...

2018-08-31 20:48:18 1259 1

原创 算法与程序设计

内容:1、简要介绍程序,算法与程序的关系;           2、了解结构化程序设计;           3、构建对称方阵。1、什么是程序?      所谓程序,就是一组计算机能识别与执行的指令。每一条指令使计算机执行特定的操作,用来完成一定的功能。      计算机的一切操作都是由程序控制的,离开了程序,计算机将一事无成。从这个意义来说,计算机的本质是程序的机器,程序算机...

2018-07-21 18:35:40 7878

转载 3dsmax2015 64位中文版 安装

软件百度网盘下载https://pan.baidu.com/s/1Nkp8q1P7zEeEN1W5Cj61fA#list/path=%2F安装教程http://www.ddooo.com/softdown/50566.htm

2019-03-09 10:57:19 1236

原创 CSP2016-09-2 火车购票

试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。   假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类...

2018-09-15 14:40:52 488

原创 STL——反片语

题目:反片语    输入一些单词,找到所有满足如下条件的单词,该单词不能通过字母重排,得到输入文本另外一些单词。在判断是否满足条件时,字母不分大小写,但在输出时应保留输入中的大小写,按字典序进行排序(所有大写字母在所有小写字母的前面)。/*题目:反片语 输入一些单词,找到所有满足如下条件的单词,该单词不能通过字母重排,得到输入文本的 另外一些单词。在判断是否满足条件时,字母不分大...

2018-09-14 11:20:50 395

原创 CSP2016-04-01 折点计数

试题编号: 201604-1 试题名称: 折点计数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   给定n个整数表示一个商店连续n天的销售量。如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点。其他的天都不是折点。如下图中,第3天和第6...

2018-09-13 20:31:06 293 1

原创 CSP2016-09-01 最大波动

试题编号: 201609-1 试题名称: 最大波动 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   小明正在利用股票的波动程度来研究股票。小明拿到了一只股票每天收盘时的价格,他想知道,这只股票连续几天的最大波动值是多少,即在这几天中某天收盘价格与前一天收盘价格之差的绝对值最大是多少。 输入格式 ...

2018-09-13 16:53:59 205

原创 CSP2016-12-01 中间数

试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   在一个整数序列a1, a2, …, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数。在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的。   给定一个整数序列...

2018-09-13 00:25:09 366

原创 CSP2017-03-01 分蛋糕

试题编号: 201703-1 试题名称: 分蛋糕 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, …, an。小明想分给每个朋友至少重量为k的蛋糕。小明的朋友们已经排好队准备领蛋糕,对于每个朋友,小明总是先将自己手...

2018-09-12 21:48:16 211

原创 CSP2017-09-01 打酱油

试题编号: 201709-1 试题名称: 打酱油 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   小明带着N元钱去买酱油。酱油10块钱一瓶,商家进行促销,每买3瓶送1瓶,或者每买5瓶送2瓶。请问小明最多可以得到多少瓶酱油。 输入格式   输入的第一行包含一个整数N,表示小明可用于买酱油的钱数。...

2018-09-12 19:26:25 167

原创 CSP2017-12-02 游戏

试题编号: 201712-2 试题名称: 游戏 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。   游戏开始,从1号小朋友开始顺时针报...

2018-09-12 17:38:02 188

原创 CSP2017-12-1 最小差值

201712-1 试题名称: 最小差值 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。 输入格式   输入第一行包含一个整数n。   第二行包含n个正整数,相邻整数之间使用一个空格分隔。 输出格式 ...

2018-09-12 00:14:26 465

原创 数据结构——平衡二叉树(AVL)

内容:平衡二叉树简介 结点的构造并新建 获得高度 计算平衡因子并更新 AVL查找操作 左旋与右旋 AVL插入操作 AVL树的建立1、 平衡二叉树简介使树的高度在每次插入元素后,任然保持O(logn)的级别;AVL树仍然是一棵二叉查找树;对AVL树的任意结点来说,其左子树与右子树高度之差的绝对值不超过1,其中左子树与右子树的高度之差称为该节点的平衡因子;2、结点的...

2018-09-05 23:39:04 205

原创 算法内功修炼——深度优先搜索(DFS)

内容:深度优先搜索简介 背包问题 剪枝1、深度优先搜索简介深度优先搜索是一种枚举所有完整路径以遍历所有情况的搜索方法。有明确的搜索目标; 存在到达目标的路径; 路径中存在结点,每个结点存在一个或以上的分叉口; 深度优先搜索的实现方法——递归法递归中的递归式就是那个分叉口; 递归边界就是那个目标; 2、背包问题#include<iostream>u...

2018-09-01 21:02:06 279

原创 算法内功修炼——八皇后中对角线判断问题(三)

第一种当前元素和之前已插入号的皇后的行列之差的绝对值相等。abs(index-pre)==abs(x-p[pre])第二种的简易写法,往下看。。。第二种直接判断法if( p[index]==p[pre] || index-p[index]==pre-p[pre] || index+p[index]==pre+p[pre])p[index==p[pre]]用来判断是否在同...

2018-08-28 21:35:13 5186

原创 算法内功修炼——全排列实现八皇后回溯法优化(二)

3、全排列实现八皇后回溯法优化朴素算法——暴力法  通过枚举所有情况,然后判断每一种情况是否合法的做法是非常朴素的;因此,我们把这种不使用优化,直接用朴素算法来解决问题的做法叫做暴力法。回溯法  经过思考可以发现,当已经放置了一部分皇后时(程序执行到一定时),可能剩余的皇后无论如何放置都无法满足结果,此时就没必要往下递归了,直接返回上一层即可,这样就可以为程序减少很多计算量。在...

2018-08-28 17:12:46 426

原创 算法内功修炼——全排列与实现八皇后(一)

内容:全排列实现 结合全排列实现八皇后 全排列实现八皇后回溯法优化 八皇后中对角线判断问题1、全排列实现输出一个1~n的全排列。如:1到3,123,132,213,231,312,321算法描述:设置一个数组p[maxn],用来存放全排列数字; 设置一个数组hashTable[maxn]用来标记元素是否已经被存入p[]中,类型为bool,返回值为true和false;...

2018-08-27 20:49:28 337

原创 PAT1006—— 换个格式输出整数

1006 换个格式输出整数 (15)(15 分)让我们用字母B来表示“百”、字母S表示“十”,用“12...n”来表示个位数字n(&lt10),换个格式来输出任一个不超过3位的正整数。例如234应该被输出为BBSSS1234,因为它有2个“百”、3个“十”、以及个位的4。输入格式:每个测试输入包含1个测试用例,给出正整数n(&lt1000)。输出格式:每个测试用例的输出...

2018-08-23 21:26:36 473

原创 PAT 1004——成绩排名

1004 成绩排名 (20)(20 分)读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含1个测试用例,格式为\ 第1行:正整数n 第2行:第1个学生的姓名 学号 成绩 第3行:第2个学生的姓名 学号 成绩 ... ... ... 第n+1行:第n个学生的姓名 学号 成绩其中姓名和学号均为不超过10个字符的字符...

2018-08-23 20:24:47 177

原创 PAT 1003——我要通过!

1003 我要通过!(20)(20 分)“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:1. 字符串中必须仅有P, A, T这三种字符,不可以包含其它字符;\任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,...

2018-08-23 18:58:43 614 1

原创 PAT 1009——说反话

1009 说反话 (20)(20 分)给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:He...

2018-08-22 20:09:27 189

原创 PAT 1002——写出这个数

1002 写出这个数 (20)(20 分)读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10^100^。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输...

2018-08-22 17:24:03 581

原创 PAT 1001和1005—— 害死人不偿命的(3n+1)猜想

1001 害死人不偿命的(3n+1)猜想 (15)(15 分)卡拉兹(Callatz)猜想:对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1...

2018-08-21 21:40:36 168

原创 修炼算法内功 归并排序(二)

3、归并排序算法的优化优化方案一template<typename T>void mergeSort(T arr[],int first,int last){    if (first >= last)//递归到底就结束        return;    int mid = (last + first) / 2;//取中间数,并向下取整        //...

2018-08-16 13:14:24 165

原创 修炼算法内功 归并排序(一)

内容:归并排序算法思想 归并排序算法的实现 归并排序算法的优化1、归并排序算法思想对于给定的一串数组如:5、3、7、2、6、4、8、1我们可以进行如下几个步骤:将数组从中间分成两组数组——>5、3、7、2和6、4、8、1分别排序; 同样,我们可以继续拆分这两个数组为5、3和7、2以及6、4和8、1分别排序; 我们将想要排序的数组拆分再排序,就会形成循环,直到不能拆分...

2018-08-15 21:53:45 222

原创 修炼算法内功:插入排序(二)

5、插入算法的改进在前面说到的插入排序算法中我们用到了比较和交换,对于完全乱序的数组,上述算法的性能是比选择排序的算法还要差很多。原因就是进行了swap()函数操作,也就是三次赋值操作。如果我们想优化算法,我们应该从那方面去优化呢?代码如下://优化后的插入排序template<typename T>void BetterInsertionSort(T arr[]...

2018-08-06 00:11:42 198

原创 修炼算法内功: 插入排序(一)

1、最切合实际的例子在我们生活中,常见的扑克牌就是一个很好的例子。正常人抓牌通常都是如下的几个步骤:抓取第一张排放在手中; 抓取第二张牌与第一张做比较,如果比第一张大则放在左边,反之,右边。(放在哪边是个人习惯务必较真) 抓取第三张先与第一张比较,大左小右;再与第二张比较,大左小右。 重复抓取并循环比较,直到牌抓完。(实际人类不会每次都去一次次地去比较,再去插入)2、插入排序示...

2018-08-02 22:10:56 224

原创 我的调试——copy函数报错C4996

在使用copy函数是出现了下面的错误:error C4996: 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>::copy': Function call with parameters that may be unsafe - this call relies on...

2018-08-02 10:12:31 534

原创 修炼算法内功:选择排序(二)

 4、随机生成算法测试用例       后面在比较不同排序算法效率的时候,可能会用到一万、十万、百万这种量级的数组,对于这种数组,不能手动生成。为此写一个新的方法生成随机数组,以及其他测试相关的辅助方法。 命名空间的使用:头文件——SortTestHelper.h命名空间——namespace+空间名+{程序块}代码块6:#ifndef INC_03_SELECTIO...

2018-07-28 15:39:18 239

原创 数据结构——单向链表(c语言版)

1、新建一个项目——02 单向链表;2、新建一个头文件——LinkLIst.h;链表结点——数据域+指针域 链表结构体——头结点+返回结点个数 打印函数指针——typedef void(*PRINTLINKLIST)(void*);    方法实现//初始化链表——LinkList* Init_LinkList();//指定位置插入——void Insert_LinkLIst...

2018-07-26 22:12:15 555

原创 C++ 初始String

1、初始化String对象的方式string s1;     ——>  s1为空串string s2("ABC");   ——>  用字符串字面值初始化s2string s3(s2);   ——>将s3初始化为s2的一个副本string s4(n,'c');  ——>将s4初始化为字符'c'的n个副本2、String的常用操作s.empty()...

2018-07-23 23:24:32 2042

原创 C++封装篇 类对象的定义

1、对象的实例化  在c++中类是一个模板,对象的实例化其实就是计算机根据一个类的设计制造出多个对象的过程。  对象实例化有两种方式: 从栈实例化  从堆实例化2、从栈实例化class TV{    public:    char name[20];//电视机的铭牌    int type;//电视机的型号        void changeVol();//音...

2018-07-23 17:41:26 302

原创 C++封装篇 类和对象

内容:1、什么是类和对象?           2、数据成员、成员函数。           3、类的访问限定符(public、private)1、什么是类和对象?     以狗狗为例:信息:名字:旺财年龄:1.5岁品种:宠物狗技能:吠看门吃东西我们可以将狗的信息抽象出来,定义一个狗的类。如:#include<iostream...

2018-07-23 11:03:36 250

原创 C++函数特性

1、函数参数默认值void fun(int i,int j=2,int k=3);void fun(int i,int j=2,int k);  ✘有默认参数值的参数必须在参数表的最右端fun(10);//实际传入10fun (10,20);//实际传入10,20,不是10,2fun(10,20,30);//实际传入10,20,30 无实参则用默认值,否则实参覆盖默认值...

2018-07-22 23:25:57 345

原创 修炼算法内功:选择排序(一)

内容:1、简单的选择排序;           2、使用模板(泛型)使算法更加灵活;           3、使用结构体完成学生的name和score属性的排序;           4、随机生成算法测试用例。写在前面:为什么学习O(n^2)的排序算法?基础编码简单,易于实现,是一些简单场景的首选 在一些特殊情况下,,简单的排序算法更有效 简单的排序算法思想可衍生出复杂...

2018-07-22 17:53:28 712

原创 C++语言关键字——const

1、const关键字 只要一个变量前面用const来修饰,就意味着该变量里的数据可以被访问,不能被修改。  内容:const离谁近,谁就不能被修改;           const修饰一个变量,一定要给这个变量初始化值,若不初始化,后面就无法初始化。           const在谁后面谁就不可以修改,const在最前面则将其后移一位,二者等效。2、const与基本数据类型...

2018-07-22 17:33:23 236

原创 算法与程序设计:第二篇 正整数拆分为连续正整数之和

问题:试把一个正整数n拆分为若干个(不少于2个)连续正整数之和。例如,n=15,可拆分为:15=1+2+3+4+5,5=4+5+6,15=7+8。这三种情况。算法分析 1、应用求和公式优化设计(穷举法)       算法点津:      (1)观察上述规律不难看出,拆分后的数字满足以下三个条件:        a、每组数总会有一个起始项i,i可以是1,也可以...

2018-07-21 12:09:26 7097

原创 算法与程序设计:第一篇 求两个整数的最大公约数

问题:求两个整数m,n(m>n)最大公约数。1、欧几里得算法(辗转相除法)(1)、 欧几里得算法的依据(一个定理):        gcd(m,n)=gcd(n,m mod n)  1) m除以n得余数r;若r=0;则n为所求的最大公约数;  2)若r≠0,以n为m,r为n,继续1)。代码块1:#include <iostream> using n...

2018-07-20 19:07:19 1625

空空如也

空空如也

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

TA关注的人

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