自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Lua环境搭建

Lua环境搭建因为Lua是脚本语言,一般都是直接寄生到宿主程序中运行。现在自己搭建一个简易的环境用于自己使用,记录一下搭建过程:1.先去官方下载一个 http://www.lua.org/download.htmlLua最新的包。2.然后我们来写CMAKE指令如下:(CMakeLists.txt)CMAKE_MINIMUM_REQUIRED(VERSION 3.17 FATAL_ERROR)project(LuaTest) include_directories(AFTER ${CMAKE_

2021-01-03 15:09:08 275

原创 设计模式 - 组合模式

设计模式- 组合模式组合模式定义:将对象组合成树形结构以表示“部分和整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性.优点:高层模块调用简单,组合模式使得客户端代码可以一致地处理单个对象和组合对象,无须关心自己处理的是单个对象还是组合对象。缺点:在使用组合模式时,其子节点和树枝节点都是实现类,而不是接口,违反了依赖倒置原则,设计起来麻烦。实现#include<cstdio>#include<cmath>#include<map>#

2020-07-22 19:41:38 167

原创 D. Least Cost Bracket Sequence

D. Least Cost Bracket Sequencetime limit per test1 secondmemory limit per test64 megabytesinputstandard inputoutputstandard outputThis is yet another problem on regular bracket sequences.A bracket sequence is called regular, if by inserting “+” and “

2020-05-29 14:34:02 194

原创 C. Tic-tac-toe

C. Tic-tac-toetime limit per test1 secondmemory limit per test64 megabytesinputstandard inputoutputstandard outputCertainly, everyone is familiar with tic-tac-toe game. The rules are very simple indeed. Two players take turns marking the cells in a 3 

2020-05-19 20:36:47 330 1

原创 B. Lorry(爆搜二分)

B. Lorrytime limit per test2 secondsmemory limit per test64 megabytesinputstandard inputoutputstandard outputA group of tourists is going to kayak and catamaran tour. A rented lorry has arrived to the boat depot to take kayaks and catamarans to the po

2020-05-19 20:32:30 361

原创 C. Commentator problem

C. Commentator problemtime limit per test1 secondmemory limit per test64 megabytesinputstandard inputoutputstandard outputThe Olympic Games in Bercouver are in full swing now. Here everyone has their own objectives: sportsmen compete for medals, and s

2020-05-11 20:53:53 212

原创 B. The least round way

B. The least round waytime limit per test2 secondsmemory limit per test64 megabytesinputstandard inputoutputstandard outputThere is a square matrix n × n, consisting of non-negative integer numbers. You should find such a way on it thatstarts in the

2020-05-08 20:17:46 270

原创 1C. Ancient Berland Circus

C. Ancient Berland Circustime limit per test2 secondsmemory limit per test64 megabytesinputstandard inputoutputstandard outputNowadays all circuses in Berland have a round arena with diameter 13 ...

2020-05-08 13:34:16 198

原创 设计模式--备忘录模式

设计模式–备忘录模式备忘录模式定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可对该对象恢复到原来的状态。在玩象棋或者五子棋的时候,常会遇到要悔棋情况,一步二步还好,可以记下来,但是如果从一开始就把所有走的步骤都记下来,属实很困难(不仅仅下棋,就比如我们编程所用的编译器,excel,word等等,都有撤销还原的功能)。现在如果我们用编程,可以想象...

2020-05-07 14:16:12 272

原创 设计模式--观察者模式

设计模式–观察者模式观察者模式定义:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听一个主题对象(事件)。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们可以自动更新自己。做游戏开发时常会用到这个模式,比如说:玩家升级时会触发一系列的事件(是否加属性点,是否开启新的任务,是否开启新的系统,是否可以领取新的任务,是否达成某些奖励领取的要求等等),再比如说,玩家登录时,...

2020-04-28 16:10:22 101

原创 设计模式---建造者模式

设计模式-建造者模式建造者模式我们下馆子吃饭的时候,都会发现不同家的做同样的菜味道差别很大,菜味道的不同则就取决于厨子的想法和手法,还有就是厨子做同一个菜品的时候,可能心情不好,做出来的菜也会天差地别。但是再去吃KFC,麦当劳的时候,我们发现味道差不多都一个味,不论在全国各地。因为KFC这种快餐店做食物的一套流程,既保证了效率,又保证了味道基本上一致。这里就用到了我们即将要说的建造者模式。...

2020-04-27 11:02:32 187

原创 设计模式--外观模式

外观模式外观模式定义定义:为子系统提供了一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口是的子系统使用更加方便。uml图:#include<iostream>#include<algorithm>#include<string>using namespace std;class subsystemone{ public: ...

2020-04-20 15:56:02 138

原创 设计模式--原型模式

原型模式原型模式定义定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。看uml图:原型模式就是将对象再创建一个定制对象,而且我们不需要知道创建的细节。原型模式c++实现由于c++中没有像c#那样ICloneable接口,所以我们可以自己定义一个clone接口类。我们举一个栗子:简历的复制,我现在需要简历,正常来说我们需要建立一个简历类,设置个人信息,公司经历...

2020-03-25 16:53:18 205

原创 c++template运用(2)

即上一篇文章可以用内置类型实现模板类,同时也可以用指针来实现,我们要正确的使用指针堆栈,让调用程序提供一个指针数组,其中每个指针都指向不同的字符串。创建指针是调用程序的职责,而不是堆栈的职责,堆栈的任务是管理指针,而不是创建指针。堆栈的大小必须是可变的,我们重定义类,使得类可以接受一个参数改变堆栈的大小。先看栈的改写,stacktp1.htemplate <class Type&g...

2020-03-20 20:41:44 170

原创 C++template运用

为什么用模板这个问题说傻也不傻,说好笑也不好笑。因为平常我们编程中真的很少用到template。但是我们却经常性用到STL库。例如stack,queue,dequeue,priority_queue等等都是用template写的,这样我们可以调用不同的数据类型的栈,队列等。模板优缺点模板的可重用性和可扩展性,极大增加了我们编程的效率。但是由于C++没有二进制实时扩展性,所以模板不能像库那样被...

2020-03-20 16:14:24 181

原创 c++ Prime复习 --- 命名空间

using声明和using编译指令using声明由被限定的名称和其前面的关键字using组成的,它将特定的名称添加到它所属的声明区域中。如果在函数内部使用using声明,会把这个特定加入到函数这个内部区域中,如果在函数外面,则就是将这个名称添加到全局名称空间中。using编译指令由名称空间名和前面关键字using namespace组成,它使得空间中的所有名称都可以使用,而且并不需要域操作符...

2020-03-14 19:50:41 160

原创 c++ Prime复习 ---何时使用引用参数

C++的默认构造方式是 类名();析构函数则是 ~类名();目的在构造函数执行完程序后,对象过期后,程序自动调用析构函数来完成清理工作。如果创建的是静态存储类对象,析构函数会在程序结束后自动调用。如果创建的是自动存储类对象,其析构函数将在程序执行完成代码块自动调用。如果对象是new创建的,则它将驻留在堆栈内存 或自由存储区中,当调用delelte来释放内存时,其析构函数将会自动调用。...

2020-03-13 20:12:56 134

原创 设计模式--工厂方法模式

工厂方法模式工厂简单工厂设计

2020-03-12 20:16:07 121

原创 设计模式---代理模式(实现一)保护代理

代理模式保护代理保护代理其实是一个静态代理,本文用c++实现。关于动态代理例子,求恕在下功底尚浅,c++太难实现了。一个例子:现在有一个订单系统,要求是:一旦订单被创建,只有订单的创建人才可以修改订单中的数据,其他人不能修改。相当于现在如果有了一个订单对象实例,那么就需要控制外部对它的访问,满足条件的可以访问,而不满足条件的就不能访问了。先画uml图:我们定义了OrderApi抽...

2020-03-12 14:02:01 370

原创 设计模式---代理模式

代理模式定义:字面意思就是为其他对象提供一种代理以控制对这个对象的访问。当客户端得到代理对象时,对客户端并没有影响,就和得到真实对象一样正常使用。当客户端操作这个代理对象时,实际上功能最终还是由真实对象来完成,只不过是通过代理操作的,也就是客户端操作代理,代理操作真正的对象。正是因为有了代理对象夹在客户端和被代理的真实用户,代理就相当于一个中转站,所以就可以在代理中转过程前,先判断一个权限...

2020-03-11 20:07:34 148

原创 设计模式-装饰模式

装饰模式这里只讲一些理论上的东西,实现将会在接下来几篇文章具体展开,有兴趣,可以一起研究讨论吖!!!下面进入正题。定义:动态地给对象添加一些额外的功能且不改变其结构。就增加功能这一点,装饰模式要比增加子类灵活。接下来看下装饰模式的结构图:模块大概代码如下:#include<cstdio>#include<cstdlib>#include<ctim...

2020-03-07 17:06:32 90

原创 设计模式-装饰模式(实现三)

装饰模式买奶茶案例:先看uml图:DrinkMilkTea类是我们的顶层接口,定义了两个方法,一个显示这杯奶茶多钱,一个显示用了什么材料。MilkTea类就是我们要定义的具体对象类,负责显示一杯基本奶茶多钱。而我们的Material类就是我们的抽象Decorate类了。代码如下:建议自己copy到本地跑一下呢。QAQ#include<cstdio>#include&l...

2020-03-07 16:55:06 140

原创 设计模式-装饰模式(实现一)

装饰模式实现一个穿衣服的程序:先看uml图:因为我们这里只有concreteconponent类 也就是Person类,并没有抽象类Conponent类,所以就可以让Decorate类也就是Clothes是Person的一个子类。同理如果只有一个concreDecorate类,就不用在单独建造一个Decorate类。下面是代码,可以copy到本地跑一下。#include<cs...

2020-03-07 10:03:27 136

原创 设计模式-装饰模式(实现二)

#include<cstdio>#include<cstdlib>#include<ctime>#include<string>#include<iostream>#include<algorithm>using namespace std;class Person{ private : string na...

2020-03-06 21:23:38 134

原创 设计模式-三大类型

设计模式包含了三种类型:创建型模式: 创建对象的同时隐藏创造逻辑的方式,而不是直接使用new运算符直接实例化对象,包含如下几种模式:简单工厂模式,抽象工厂模式,单例模式,建造者模式,原型模式。结构型模式:更关注类和对象的组合,继承这一个概念被用来组合接口和定义组合对象获得功能的方式。包含如下几种模式:外观模式,适配器模式,桥接模式,过滤器模式,组合模式,装饰器模式,代理模式,享元模式。行为...

2020-03-06 15:38:12 222 1

原创 设计模式-几大重要原则

设计模式-重要原则单一职责原则 (SRP).开放-封闭原则(OCP).依赖倒转原则(DIP).里氏代换原则(LSP).迪米特法则(LOD).接口隔离原则(ISP).单一职责原则定义:就一个类而言,应该仅有一个引起它变化的原因。一个类/接口/方法只负责一个职责。思想:如果一个类承担的职责太多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责的能...

2020-03-04 20:25:58 178

原创 设计模式-策略模式

什么是策略模式?策略模式是一种定义一系列算法的方法,从概念上来看,所以的算法完成都是相同的工作,只是实现不同。它可以以相同方式调用所有的算法,减少了各种算法类与使用算法类的耦合。我们用书里面的例子演示一下:假如超市的售货员给顾客结账时,她应该如何选择那种结算方式呢?假如有:满100减20,满300减70,打5折等等。我们想,如果用正常的逻辑语句应该怎么写:if(money>=100...

2020-03-02 17:48:47 169

原创 Lua-元表的使用

元表使用部分讲解本文主要用于自己学习内容的总结,有错误欢迎指出,谢谢。元表的作用元表的目的是用来定义table 和 userdata 的表--两种常用的方法setmetatable(table,setmetatable) --对指定 table 设置元表(metatable),如果元表(metatable)中存在 __metatable 键值,setmetatable 会失败。ge...

2020-02-25 20:46:58 495

原创 c中struct重载运算符

c中struct重载运算符为什么结构体需要重载运算符首先我看一段代码:struct node{ int x,y; node(int x=2,int y=2):x(x),y(y):{ } }int main(){ node a,b,c; c = a + b; cout<<c.x<<" "<<c.y<...

2020-02-22 19:03:29 6263 1

原创 Lua—字符串缓冲

字符串缓存正常我们读取文件时,会写这样一段代码:local buff = ""for line in io.lines() dobuff = buff..line..'\n'end这段代码,看着可以正常工作,但是面对较大的文件时,工作效率就极低,且会导致巨大的性能开销。例如,用这段代码读入350KB的文件数据,就需要将近1分钟的时间。我们来搞清楚运行这段代码的时候,具体做了哪些流程...

2020-02-20 17:59:01 650

原创 uml图

UML图是一种将软件密集系统进行可视化的建模语言。主要应用于开发阶段,说明,可视化,构建和书写面向对象工程项目开放的方法。我们以这篇文章的为例:工厂设计模式我们可以设计出的UML图:由于目前CSDN不支持类图,我们就手动写这个图代表了一个类,分为三层,第一层是类名,如果是抽象类且用斜体表示。第二层是类的特性,通常指字段和属性。第三层指的是类的操作,也就是类所包含的方法或者行为。前面...

2020-01-14 21:01:20 214

原创 设计模式-简单工厂设计

面向对象的设计模式——简单的工厂设计实现这个“工厂设计”之前,先重温一下面向对象的东西:C++的默认构造方式是 类名();析构函数则是 ~类名();目的在构造函数执行完程序后,对象过期后,程序自动调用析构函数来完成清理工作。如果创建的是静态存储类对象,析构函数会在程序结束后自动调用。如果创建的是自动存储类对象,其析构函数将在程序执行完成代码块自动调用。如果对象是new创建的,则它将驻留在堆栈...

2020-01-14 19:47:29 136

原创 动态规划-特别法官

题目描述大概是如下:在游戏开始的时候给每个参与者一个令牌,此人以一定的概率将令牌传递给左侧相邻的人或者右侧相邻的人。接受令牌的人接着做同样的事情,依次类推。当每个人至少收到令牌一次时,游戏结束。最后一位获得令牌的人获胜。找出给定人物获胜的可能性,对于每个人来说,令牌向左或者向右传递的概率是独立的,并且在游戏开始之前是预先知道的。参赛人员的标号从1到n。2号在1号的右侧,3号在2号的右侧,依次类...

2020-01-09 19:30:42 151

空空如也

空空如也

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

TA关注的人

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