在面向对象的设计领域里,有很多设计思路,主要有三种:is-a、has-a、like-a。 这三种在java的类、接口、抽象类中很多体现,下面简述一下其定义。 1.Is-a(继承关系) is-a,顾名思义,“是一个”,是一种继承关系。 如果A is-a B,那么B就是A的父类。 一个类完全包含另一个类的所有属性及行为。
一、题目 点此看题 二、解法 本来想刷数据结构题的,结果跳到一道思维题做 \(\tt nm\) 一晚上。 因为只有两堆石子所以我们把它放在二维平面上方便分析,然后每个位置我们标上 \(0/1\) 表示这个状态是必胜还是必败,根据 \(\tt nim\) 游戏的知识 \(n=0\) 时只有 \(x=y\) 这些点时必败的
写了那么久代码,还不会debug? bak:https://www.cnblogs.com/uncleyong/p/14232798.html
如何创建自己的小程序?西安哪家公司专业开发小程序呢?现在微信小程序越来越火,有很多的公司都想着如何开发属于自己的小程序,目前小程序有两种开发模式,一种是模板开发,还有另外一种是定制开发,那么定制开发的小程序和模板开发的小程序区别大吗?关于这个问题,这里和大家说一下,模板小程
2021“MINIEYE杯”中国大学生算法设计超级联赛(10) 庆祝暑期训练赛结束了 Pty loves lines 题意 \(n\)条直线,求直线相交的所有可能的交点数情况并输出。 思路 首先,每条直线最极端情况(所有直线不平行),那么就有\(\frac{(n * (n - 1))}{2}\)个交点。 之后,我们先管直线的平行情
这里主要就是文字叙述啦,对于设计模式的原则不太好举例hhh(主要我太菜) 所以大多都是文字叙述 /** * * @author : cby * * 这里主要就是文字描述啦 * * 单一职责原则 : 就一个类而言, 应该仅有一个引起它变化的原因,降低类内部功能的耦合性 * * 比如我们在写一个应用程序都时候都会生
转自: https://www.cnblogs.com/kyoner/p/10964181.html 1、判断奇偶数 如果把一个数n以二进制数的形式表示的话,我们只需要判断最后一个二进制位是1还是0即可。如果是1,则代表奇数,否则为偶数。代码如下: if(n & 1 == 1){ // n是奇数 } 2、交换两个数 x = x ^ y; // (1) y =
Problem CF1223D 题目大意: 给出一个长度为 \(n\) 的序列 \(a\),其中对于 \(\forall 1 \le i \le n,1 \le a_i \le n\)。 每次操作可以把所有值为 \(x\) 的数放到序列的最前面或最后面,问使序列单调上升的最小操作次数是多少。 Solution 首先有两个很重要的性质。 第一个性质,每一种数
多多评价上不去,记住这三个点,十个评价可以上八个。 第一个是账号维度,第二个是确认收货时间,第三个是评价内容比较简单,我一个一个来跟大家去聊一下。 第一个是我们的账号纬度。在市面上大家所能常见的这些什么保证销量以及上频率对吧,可以给你达到百分之八十。百分之九十的这些其实
构造题种类繁多,套路多种多样,这里介绍几种经典套路 抽屉原理 使用于要求操作数限制小于等于 \(\left \lfloor \frac{n}{k} \right \rfloor\) 的题,如果可以构造出恰好 \(k\) 种方案,所有方案操作数总和为 \(n\),那么其中最少的方案是满足条件的 CF1450C2 Errich-Tac-Toe (Hard Versio
我相信,所受过的苦难都会变成礼物,一切颠沛流离终将成为耀眼的光芒,照亮未来的路。 1,自己闷声自问下,在赚钱这条赛道下,你是不是一个天赋型选手,如果不是,那么用勤来补拙,敬业爱岗,孜孜不倦,用把一件事干到极致的方式,来打破时间的壁垒,从而让量变产生质变,这就是王道。 2,一个家庭有传
题意: 给定一个\(n\)个数得序列\(a_i\),给定\(m\)个询问,每次给出一个\(k\),寻找有多少个区间\([l, r]\)中最大值与最小值之差严格大于\(k\)。 思路: 可以发现,如果已经知道一个区间最大值与最小值严格大于k之后,那么我们便可以往从两头这个区间随意加数并且会对答案有贡献: 如果加一个比
如果值域小一点。 那么我们有一个很精妙的做法。 分块完维护数字\(cnt\),和一个\(bitset\)信息。 然而小不得。 那么我们考虑维护后缀\(nxt_i\),表示第\(i\)位后,最近的\(a_i + a_{nxt_i} = w\) 线段树维护。 考虑到我们对于所有的相同\(nxt_i\),只有最后一个有效,那么我们只维护最后
前言 简单介绍一下docker的文件系统。 正文 docker 容器启动就是一个文件系统的启动。 在docker中,每一层镜像都具备一些文件。 比如说,有一个centos的镜像。 里面就是一个微小版的文件系统。 然后比如说有第二次镜像。 第二层镜像有文件1和文件2和文件3。 他们合并就形成的了一个
ls -lrt 是一条简单的Linux命令,相比大家平时敲的也很多,那么今天就来考考大家,大家看到这条小指令会想到什么了: 有些童鞋会说这就是一条简单的指令,作用是列出当前目录下的文件; 有些童鞋会说ls是list的缩写,-t(短选项)的意思是以时间排序,最新的文件会排在上面; -l 表示开启长列表输出
前言 简单整理一下进程的控制 正文 进程优先级 nice 从-20-19,值越小,优先级越高 renice 从新设置优先级 进程的作业控制: job 那么先来创建一个进程。 那么使用top -p 26090 那么看下cpu的逻辑: 这里可以看到cpu3的cpu满了。 那么看下ni: 那么这里我们可以让其优先级下降: 那
前言 因为最近看了一些docker 底层,然后希望把docker应用先编写出来,然后进行细节篇讲解,比如说docker 的底层是如何实现的之类的话题。 正文 docker 这东西怎么说呢?有一些东西需要使用。 docker 概述 docker 安装 docker 命令 a. 镜像命令 b. 容器命令 c. 操作命令
本想着 Div.3 玩玩就好,所以直接开了最后一题,想着 \(40\) 分钟内可以解决。然后就……悲剧了。 对借给我帐号的选手表示诚挚的歉意。 给定一棵 \(n\) 个节点的树,求选出 \(k\) 个点,它们两两距离相同的方案数。 首先容易发现一个性质,如果 \(k > 2\),那么这些点一定有一个“中心点”
千万别辞职做自媒体,这期的内容可能会打击很多想通过自媒体一夜暴富的朋友们,心态不好别往下看啊。 前几天我的一个朋友发消息跟我说她想辞职了,想让我带她去做自媒体,我问她你给自己多长时间呢? 她说一个月的时间,如果做不好就继续回去上班,反正时间也挺多的,看完消息之后我并没有回
这两场考试大部分的题都考过,然鹅有的 \(trick\) 忘了,有的当时咕了(虽然现在还咕着) 首先是 \(v\) 这道题需要加一个小优化,对于较小的状态应该直接用数组记录,较大的再用 map 记 然后就是这个神奇的 \(dp\) 题: A. 玩具 考场上只会暴搜,胡了一个 hash 还给挂了 正解是神奇的 \(dp\) 首
题目传递门 仔细读题,发现了一些明显的提示信息“四四方方”,"\(2^k\times 2^k\)" 等字样,很显然,这是暗示我们此题不必使用\(dfs\)深搜,可以使用分治+递归的办法。 四种地毯的形状: 首先考虑\(2\times 2\)的情况。假设这个特殊点在\((2,2)\),那么很明显正确的填法是这样的: 那么接下来
你们上班是不是巨忙啊?你们是不是天天加班到很晚啊?你头发那么多真的是程序员吗? 不知道有木有程序员同学被问过这几个问题,有的话请评论区回1。反正我呢真的没少被问过这几个问题。今天,我们就来聊聊程序员的工作,聊聊程序员的生活。 一、程序员真的只是一份普通的工作。 我们和大部
[LOJ#6188]「2017 山东二轮集训 Day7」鬼牌 题意 有 \(n\) 张牌,每张牌上有一个\(1\sim m\)的点数,最开始点数为 \(i\) 的牌有\(a_i\) 张 每次你会随机选两张不同的牌 \(A,B\),并把 \(A\) 的点数变成 \(B\) 的点数 求所有牌的点数变成一样的期望步数 \(n\le 1e9,m\le 1e5\) 题解 我们
Redis 为什么这么快? 很多人只知道是 K/V NoSQl 内存数据库,单线程……这都是没有全面理解 Redis 导致无法继续深问下去。 这个问题是基础摸底,我们可以从 Redis 不同数据类型底层的数据结构实现、完全基于内存、IO 多路复用网络模型、线程模型、渐进式 rehash…... 到底有多快? 我
洛谷题面传送门 一道挺有意思的题,现场切掉还是挺有成就感的。 首先看到区间操作我们可以想到差分转换,将区间操作转化为差分序列上的一个或两个单点操作,具体来说我们设 \(b_i=a_{i+1}-a_i\),那么对于一次形如 \(\forall i\in[l,r],a_i\leftarrow a_i+x\) 的操作三元组 \((l,r,x)\),我