自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 动态规划 最大子序列和

#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<set>#include<math.h>#define IN 1<<28#de

2018-07-23 21:06:00 534

原创 玛雅人的密码 广搜

裸的广搜,visited数组可以用一个map代替#include <iostream>#include <string>#include <string.h>#include <stdio.h>#include <malloc.h>#include <math.h>#include <map>#inc

2018-07-13 11:46:32 410 1

原创 最小邮票数

背包问题#include <iostream>#include <queue>#include <memory.h>#include <stdio.h>#include <stdlib.h>#include <math.h>#include <string>#define eps 1e-6#defi

2018-07-12 18:50:59 393

原创 二分查找之月度开销

最大值最小化:二分查找答案注意一下初始化的细节#include <iostream>#include <string>#include <memory.h>#include <stdio.h>using namespace std;int N,M,cost[100005];bool check( int k ){ int num...

2018-06-18 21:49:51 499

原创 回形遍历二维数组

吸取下思路#include <iostream>#include <string>#include <memory.h>#include <stdio.h>using namespace std;int row,col;int num[105][105];int main(){ cin >> row >&gt...

2018-06-13 21:40:57 3494 1

原创 特殊密码锁

声明2个性质:1. 一个按钮最多摁一次2. 如果确定了第一个按钮是否被摁,则其他按钮是否被摁也被确定。#include <iostream>#include <string>#include <memory.h>#include <stdio.h>using namespace std;char now[35], target[35];v...

2018-06-13 21:07:11 221

原创 流感传染

小技巧是只用修改状态发生变化的位置。#include <iostream>#include <string>#include <memory.h>using namespace std;int cur[105][105],nxt[105][105];int dx[4] = {1,-1,0,0};int dy[4] = {0,0,1,-1};int ...

2018-06-13 20:10:31 379

原创 二叉树

#include <iostream>#include <string>using namespace std;int main(){ int x,y; cin >> x >> y; while(1) { if( x > y ) x /= 2; el...

2018-06-13 19:35:52 124

原创 运算符重载

10.2 运算符重载的方法运算符重载的方法是定义一个重载运算符的函数,使指定的运算符不仅能实现原有的功能,而且能实现在函数中指定的新功能。运算符重载实际上是函数的重载。重载运算符的函数一般格式如下:函数类型  operator 运算符名称 ( 形参表 ){对运算符的重载处理;}例子中实现了一个简单的复数相加。#include <iostream>using namespace st...

2018-06-01 22:03:18 227

原创 公用数据成员的保护

6.1常对象定义常对象的一般形式为:类名 const 对象名 [(实参表)];在定义常对象前,必须同时对之初始化,之后不能再改变。说明:1)如果一个对象声明为常对象,则通过该函数只能调用它的常成员函数,而不能调用该对象的普通成员函数(除了构造函数和析构函数)。2)常成员函数可以访问常对象中的数据成员,但仍然不允许修改常对象中的数据成员的值。3)常对象只保证其数据成员是常数据成员,其值不被改变。不保...

2018-06-01 17:48:51 473

原创 this指针

它是指向本类对象的指针,他的值是当前被调用的成员函数所在的对象的起始地址。所谓“调用对象a的成员函数f”,实际上是在调用成员函数f时使this指针指向对象a,从而访问对象a的成员。...

2018-05-30 16:59:05 134

原创 纯虚函数和抽象类

4.1纯虚函数使用背景:有时在基类中将某一成员函数定为虚函数,并不是基类本身的要求,而是考虑到派生类的需要,在基类中预留一个函数名,具体功能留给派生类根据需要去定义。声明纯虚函数:virtual 函数类型 函数名(参数列表)=0;注意:1)纯虚函数没有函数体2)最后面的“=0”并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”3)声明语句,最后面应该有分号。纯虚函数的功能:1...

2018-05-30 16:43:28 700

原创 静态关联和动态关联

3.2静态关联与动态关联关联:确定调用的具体对象的过程。(指把一个函数名和一个类对象捆绑在一起,建立关联)。静态关联:在编译时即可确定其调用的虚函数属于哪一个类,例如函数重载和通过对象名调用的虚函数。由于是在运行前进行关联的,又称为早期关联。动态关联:编译系统把他放在运行阶段进行处理,在运行阶段确定关联关系。也叫滞后关联。3.3 在什么情况下应当声明虚函数使用虚函数的注意:1)只能用virtual...

2018-05-30 15:29:48 4692

原创 利用虚函数实现动态多态性

12.3.1 虚函数的作用能否用同一个调用形式来调用派生类和基类的同名函数。在程序中,不是通过不同的对象名去调用不同派生层次中的同名函数,而是通过指针调用它们。c++中的虚函数就是用来解决动态多态问题的。所谓虚函数,就是在基类声明函数是虚拟的,并不是实际存在的函数,然后在派生类中才正式定义此函数。下面给出一个例子#include <iostream>#include <stri...

2018-05-28 17:48:09 6561

原创 c++ 类的继承与派生 随便写的练习

#include <iostream>using namespace std;const double pi = 3.14;class Point{protected: double x,y;public: Point( double xx = 0, double yy = 0 ): x(xx), y(yy) {} void SetPoint( do...

2018-05-28 16:13:06 387

原创 多态性与虚函数

12.1多态性的概念多态性是面向对象程序设计的一个重要特征。多态性:向不同的对象发送同一消息,不同的对象在接受时会产生不同的行为。例如函数的重载和运算符重载都是多态现象。在c++中,多态性的表现形式之一是:具有不同功能的函数可以用同一函数名,这样就可以实现一个用一个函数名调用不同内容的函数。从系统实现的角度来看,多态性分为两类:静态多态性和动态多态性。静态多态性:通过函数重载完成,由函数重载和运算...

2018-05-28 15:09:45 244

原创 程序设计MOOC 奇怪的类复制

#include <iostream>using namespace std;class Sample{public: int v; Sample( const int vv = 0 ) { v = vv; } Sample( const Sample & a ) { v = a.v + 2...

2018-05-27 20:24:59 335

原创 程序设计MOOC 学生信息处理程序

#include <iostream>#include <string>#include <cstdio>#include <cstring>#include <sstream>#include <cstdlib>using namespace std;class Student{private: ...

2018-05-27 19:58:16 515 1

原创 程序设计MOOC 神秘的数组初始化

#include <iostream>using namespace std;int main(){ int * a[] = { NULL, NULL, new int[1], new int[6] }; *a[2] = 123; a[3][5] = 456; if(! a[0] ) { ...

2018-05-27 19:40:25 616

原创 重载运算符 程序设计实习MOOC 全面的MyString

#include <cstdlib>#include <iostream>using namespace std;int strlen(const char * s){ int i = 0; for(; s[i]; ++i); return i;}void strcpy(char * d,const char * s){ int...

2018-05-27 19:26:45 931

原创 派生类的构造函数和析构函数

前言:在设计派生类的构造函数时,希望执行派生类的构造函数时,使派生类的数据成员和基类的数据成员同时被初始化。解决这个问题的思路是:在执行派生类的构造函数时,调用基类的构造函数。5.1简单的派生类的构造函数派生类构造函数一般形式为派生类构造函数名(总参数表):基类构造函数名(参数表){派生类中新增数据成员初始化语句}总参数表包括基类构造函数所需的参数和对派生类新增的数据成员初始化所需的参数。注意:派...

2018-05-27 16:57:54 1427

原创 类的继承与派生(二)

4.派生类成员的访问属性讨论访问属性时,一般考虑以下几种情况1.基类成员函数访问基类成员。(ok)2.派生类的成员函数访问派生类自己增加的成员。(ok)3.基类的成员函数访问派生类的成员(no)4.派生类的成员函数访问基类的成员5.派生类外访问派生类的成员(根据公有成员或者私有成员来定)6.在派生类外访问基类成员不同的继承方式决定了基类成员在派生类中的访问属性(1)公用继承基类的公有成员和保护成员...

2018-05-27 12:04:11 302

原创 类的继承与派生(一)

继承性是面向对象设计的最重要特征,实现了软件的可重用性。1.继承与派生的概念在c++中,所谓继承就是在一个已存在的类的基础上建立一个新的类。已存在的类称为基类或父类,新建立的类称为派生类或者子类。一个新类从已有的类那里获得其已有的特性,这种现象称为类的继承。从已有的类产生一个新类,称为类的派生。继承的分类:1.一个派生类只从一个基类派生,称为单继承。2.一个派生类有两个或者多个基类的称为多重继承。...

2018-05-27 11:44:03 2789

原创 leetcode 乘积最大子序列

由于乘积时会负负得正,所以需要记录一个正的最大值和一个负的最小值。状态Posdp[i]:表示以第i个元素为结尾的子序列的最大乘积状态Negdp[i]: 表示第i个元素为结尾的子序列的最小乘积状态转移方程: Posdp[i] = max( nums[i], max( nums[i] * Posdp[i-1], nums[i] * Negdp[i-1] ) ); ...

2018-05-27 10:25:25 1257

原创 leetcode 最大子序和

状态:dp[i]表示以第i个元素结尾的连续子数组的最大和状态转移方程:dp[i] = max( 0, dp[i-1] ) + nums[i];#include <vector>using namespace std;class Solution{public: int maxSubArray(vector<int>& nums) { ...

2018-05-26 20:42:08 326

原创 leetcode 使用最小花费爬楼梯

状态:dp[i]表示到达第i个阶梯需要的最小花费,小技巧是令cost[n] = 0 ,最后返回dp[n]即可状态转移方程:dp[i] = min( dp[i-2], dp[i-1] ) + cost[i];#include <vector>using namespace std;class Solution {public: int minCostClimbingStai...

2018-05-26 20:18:50 1693 1

原创 leetcode 买卖股票的最佳时机Ⅱ

因为可以进行多次买卖,这是一个贪心问题,只要当天股票价格比前一天股票价格上涨,便卖出#include <vector>using namespace std;class Solution {public: int maxProfit(vector<int>& prices) { int n = prices.size(); ...

2018-05-24 10:11:18 191 1

原创 leetcode 不同路径Ⅱ

动态规划(深搜会超时)class Solution{public: int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { int dp[105][105]; int n = obstacleGrid[0].size();...

2018-05-23 22:01:35 398

原创 解码方法 leetcode

类似于爬楼梯string s;using namespace std;class Solution {public: int numDecodings(string s) { if( s.empty() || s.size() >= 1 && s[0] == '0' ) { return 0; ...

2018-05-23 21:33:24 271

原创 构造函数

成员函数的一种①名字与类名相同,可以有参数,不能有返回值(void也不行)②作用是对对象进行初始化,如给成员变量赋值。③如果定义类时没写构造函数,则编译器生成一个默认的无参数的构造函数。默认构造函数为参数,不做任何操作。如果定义了构造函数,则编译器不生成默认的无参数的构造函数。对象生成时构造函数自动被调用。对象一旦生成,就再也不能在其上执行构造函数一个类可以有多个构造函数。参数个数和参数类型不同 ...

2018-05-22 20:38:06 122

原创 类和对象的基本概念二

1.类的成员函数的函数体和类的定义分开来写。写法:函数类型  类名::函数名{函数体}表明后面的函数是类的成员函数而非普通函数。那么,一定要通过对象或对象的指针或对象的引用才能调用。2.类成员的可访问范围范围访问关键字:①private:私有成员,只能在成员函数内访问。②public:公有成员,可以在任何地方访问。③protected:保护成员(如果某个成员前面没有关键字,则缺省地被认为是私有成员...

2018-05-22 19:45:09 151

原创 类和对象的基本概念

结构化程序数据结构 + 算法不足之处:1. 结构化程序设计中,函数和其所操作的数据结构没有直观的联系。2.随着程序规模的增加,程序逐渐难以理解,很难一下子看出来。例如:①某个数据结构到底有哪些函数可以对它进行操作。②某个函数到底用来操作哪些数据结构的。③任何两个函数之间存在怎样的调用关系?面向对象的程序设计类 + 类 +类面向对象的程序设计方法:1.将某类客观事物共同特点(属性)归纳出来,形成一个...

2018-05-20 21:14:55 581

原创 内联函数 和 重载函数 和 缺省函数

内联函数目的:函数调用是有时间开销的(参数入栈、函数地址入栈)。如果函数本身只有几条语句,执行非常快·,而且函数会被反复执行很多次,相比之下,调用函数的开销会显得特别大。机理:引入了内联函数机制,编译器处理对内联函数的调用语句时,是将整个函数的代码插入到调用语句中,而不会产生调用函数的语句。内联函数的定义:在函数定义前加"inline"关键字inline int Max( int a, int b...

2018-05-20 19:32:45 188

原创 种类并查集 食物链

#include <stdio.h>#include <iostream>#include <stack>#include <string>#include <set>#include <memory.h>#include <math.h>#include <algorithm&

2018-05-20 10:07:59 242

原创 种类并查集 A Bug's Life

跟发现它抓住它完全一样。注意:当发现同性恋时不能直接break,因为还有输入数据#include <stdio.h>#include <iostream>#include <stack>#include <string>#include <set>#include <memory.h>#include <ma...

2018-05-16 16:54:02 453

原创 种类并查集 发现它 抓住它

tag[i] 表示 i 结点 与其父节点是否在同一个集合中(表示的是一种相对关系)GetFather时:压缩路径,同时更新tag[i]合并时:更新tag[father[i]]#include <stdio.h>#include <iostream>#include <stack>#include <string>#include <se...

2018-05-16 15:37:06 1397

原创 贪心 Rainbow的商店

贪心策略是把商品按价值从大到小排序,价值相同的过期日期大的在前面,设置一个标志数组visited,从过期日期向前依次安排卖的日期#include <stdio.h>#include <iostream>#include <stack>#include <string>#include <set>#include <memo...

2018-05-15 17:49:33 406

原创 促销活动

注意:因为账单金额有可能重复,所以需要使用multiset,另外结果会爆int#include <stdio.h>#include <iostream>#include <stack>#include <string>#include <set>#include <memory.h>using namespace ...

2018-05-13 19:31:58 252

原创 双队列·

维护一个平衡二叉树#include <stdio.h>#include <iostream>#include <stack>#include <string>#include <set>using namespace std;struct Guest{ int P,K; Guest( int pp = 0, ...

2018-05-13 19:05:17 169

原创 文本二叉树

点击打开链接建立二叉树的一种方式#include <stdio.h>#include <iostream>#include <stack>#include <string>using namespace std;string s;int kase;typedef struct node{ char data; node...

2018-05-13 11:03:58 299

空空如也

空空如也

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

TA关注的人

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