泛型编程简介(三)

我们看到这个标题是不是觉得有点纳闷?我们要学习的是数据结构和,并不是某门语言。比如 C++ 就支持泛型编程,那么我们为什么还要来讨论这个呢?我们先来看看数据结构的特点:1、专注于数据元素之间的关系;2、专注于特定结构之上的算法。数据结构并不关注数据元素的具体类型!那么如何为数据结构的学习选择合适的语言呢?我们之前有见到过 C 语言版的数据结构,也有 C++ 版的数据结构。但是从耦合性的角度来看,支持泛型编程的语言最适合数据结构的学习。所谓泛型编程便指的是不考虑具体数据类型的编程方式。
分类: 企业开发 发布时间: 08-08 23:46 阅读次数: 0

fold 命令入门学习

你有没有发现自己在某种情况下想要折叠或中断命令的输出,以适应特定的宽度?在运行虚拟机的时候,我遇到了几次这种的情况,特别是没有 GUI 的服务器。 以防万一,如果你想限制一个命令的输出为一个特定的宽度,现在看看这里! fold 命令在这里就能派的上用场了! fold 命令会以适合指定的宽度调整输入文件中的每一行,并将其打印到标准输出。 在这个简短的教程中,我们将看到 fold 命令的用法,带有实例...
分类: 其他 发布时间: 08-08 23:45 阅读次数: 0

Secure Boot什么意思?BIOS中Secure Boot灰色无法更改解决方法详解

在电脑Bios设置中,有一项“Secure Boot”相关设置,很多朋友不知道Secure Boot什么意思,也不知道该如何设置。下面本文就来谈谈Secure Boot设置相关的知识,需要的朋友可以参考下。 Secure Boot什么意思? 从字面意思来讲,Secure Boot是安全启动的意思。 在主板Bios设置中,Secure Boot是UEFI BIOS的一个子规则...
分类: 其他 发布时间: 08-08 23:45 阅读次数: 0

搜索好题集合2

八数码之前博客里贴了三篇这里就不写了POJ 1475 Pushing BoxesImagine you are standing inside a two-dimensional maze composed of square cells which may or may not be filled with rock. You can move north, south, east or west
分类: 其他 发布时间: 08-08 23:44 阅读次数: 0

搜索好题集合1

POJ - 2488 Knight’s Journey Background The knight is getting bored of seeing the same black and white squares again and again and has decided to make a journey around the world. Whenever a knight...
分类: 其他 发布时间: 08-08 23:44 阅读次数: 0

分块--莫队算法(一)

很久很久没空写博客了…这两天学了点分块和莫队,瞎jb写点..分块一个对于一些线段树之类无法解决的区间问题十分6的暴力算法.它的思想简单来说就是把一整个序列分成几块(一般为根号数列长度,不过也要视情况),然后维护每个块里的答案,当查询[l,r]时对于l和r所在区间暴力求解,再扫一遍l所在加一块到r所在减一块这些分出的块里的答案.这个操作显然可以看到是max(块大小,块数量)这个级别,因此取根号时就是根
分类: 其他 发布时间: 08-08 23:44 阅读次数: 0

分块模板+模板题

嗯…直接贴板子了,(注释写了点)..模板#include<bits/stdc++.h> using namespace std; const int maxn=1e5+10; int a[maxn],belong[maxn],L[1010],R[1010],block,num;//a数组存取原始数据,belong数组表示每个数属于哪一块方便调用,L和R表示各块左右端点,block各块大小,num块数
分类: 其他 发布时间: 08-08 23:43 阅读次数: 0

莫队模板+模板题

也不说了直接上板子莫队模板#include<bits/stdc++.h> using namespace std; struct ques{ int id,l,r; }q[200010];//结构体存每个询问,注意要记录询问顺序以便输出 const int block=1300;//分的块大小 int a[30010],ans[200010],res=0;//a数组数据,ans存各个询问答
分类: 其他 发布时间: 08-08 23:43 阅读次数: 0

网络流--最大流

这几天学网络流学到快吐血.. 先写最大流,下一篇写费用流. 网络流定义: 嗯..基本就是不知哪个大神看水管里水流啊流而发明的高妙算法,将一个问题构建成网络流模型,类比水流流动解决.(一般来说问题的最优解就对应网络流中最[大/小]流). 最大流: 让管道总流量最大,这个东西算法中高妙的地方在于反向边,可以不断增广而使复杂度降得很低,具体的东西网上一抓一大把,懒得打.. 最大流板子:(din
分类: 其他 发布时间: 08-08 23:43 阅读次数: 0

网络流--费用流

具体说就是每条管道都有一个cost,要你在最大流情况下使总流量最小. 算法: 十分暴力,spfa跑能否增广同时每次走cost最小的路(就是最短路..),然后增广..#include<bits/stdc++.h> using namespace std; int n,m,s,t,to[100010],las[100010],head[5010],next[100010],pre[5010],cos
分类: 其他 发布时间: 08-08 23:42 阅读次数: 0

网络流--建图

网络流算法特点就是看看模板很简单,真要做网络流的题如果题目不告诉你甚至想不到这题是网络流,因此建图是网络流重中之重. 建图方法: 1.把有关系的点之类的建边,对于题目条件转化成对于流量或费用的的限制. 2.搞清楚是最大流还是费用流… 3.其实网络流题目还有很多类似的,名字很高端,什么最小割,二分图,这里给出定义(转载)点覆盖、最小点覆盖:  点覆盖集即一个点集,使得所有边至少有一个端点在集合
分类: 其他 发布时间: 08-08 23:42 阅读次数: 0

网络流刷题集

一.洛谷网络流24题(部分)洛谷这些题都有很好的题解,这里就不再赘述了(懒)..飞行员配对方案问题#include<bits/stdc++.h> using namespace std; const int s=0,t=101; int n,m,next[20010],head[110],to[20010],las[20010],deep[110],num=-1; void add_edge(int
分类: 其他 发布时间: 08-08 23:42 阅读次数: 0

LCT动态树学习笔记--个人理解

LCT,即link-cut-tree,用于解决动态树这一类问题,思想上和树链剖分相近,树链剖分通过重链剖分将树划分为轻重链,而之后一般通过线段树进行维护。而LCT则也将树分为两种边(姑且也称作轻重边,反正是个名字而已),但并不通过子节点sz划分,而是一种相对的划分。其通过splay维护当前一棵树中的重链(即一棵splay里所有节点是某一棵树的某一重链),而轻链用于连接一棵树里的splay。spla...
分类: 其他 发布时间: 08-08 23:42 阅读次数: 0

LCT动态树学习笔记--基本操作(带详细注释)

一些LCT最基本也是最核心的操作,其他一些维护树链信息的可以直接参照树链剖分。
分类: 其他 发布时间: 08-08 23:41 阅读次数: 0

有关无旋treap一些常用函数

刷了一些平衡树的题,基本都是用无旋treap写的(比splay好写的多),贴一些题目中经常用到的函数。。 1.merge(最基本的) int mg(int x,int y) { if(!x||!y)return x+y; if(node[x].rnd&amp;lt;=node[y].rnd) { node[y].ls=mg(x,node[y].ls); push_up(y); re...
分类: 其他 发布时间: 08-08 23:41 阅读次数: 0

后缀自动机学习笔记--思路

原来看这个东西很复杂不敢学,现在发现字符串训练啥都不会,后悔了,强行去学了一波。。。 大体思路: 定义集合endpos(s)集合表示s这个子串在总串S中所有出现的结束位置的集合,那么显然一些子串的endpos集合会是完全相同的,所以将这些子串全都丢在自动机上的一个状态里(即一个点中,注意连接点的边表示的是字母),而有一些endpos集合会包含其他的(比如&quot;b&quot;的集合可能会包含&quot;ab&quot;),那么我...
分类: 其他 发布时间: 08-08 23:41 阅读次数: 0

后缀自动机学习笔记--构建方法

续了一个晚上终于搞懂后缀自动机的建法了。。 首先,SAM的线性复杂度构建方法是将所建字符串的字符从左至右一个个插入,设插入后自动机有n个点,那么插入会产生到1~n、2~n、3~n直至n~n这些点(都是由i~n-1转移来),而在插入过程中要分成三种情况讨论。 首先因为最长长度n的点之前不可能存在,所以必然要先开一个新点(np)。再从之前一个插入的点(记为p),沿着fa边往回跳,边回跳边将没有连向...
分类: 其他 发布时间: 08-08 23:41 阅读次数: 0

后缀数组学习笔记--sa和rnk数组

学了后缀自动机,切了寥寥几道字符串题发现就切不动了,问了sw和yzy大佬说其他题大多要用后缀数组,原来觉得学了后缀自动机就不用后缀数组这玩意了,没想到它也是很有用的,没办法再去恶补一波。。 后缀数组就是搞出字符串所有后缀给它排个序,sa[i]表示排第i的是哪个,rnk[i]表示i排哪,显然这两个是互逆的,求sa就能求rnk了 sa的求法主要就是一个倍增算法,算出某一长度的更新该长度乘2的。不过...
分类: 其他 发布时间: 08-08 23:40 阅读次数: 0

后缀数组学习笔记--height数组

显然单一个后缀数组是没有什么软用的,加上height才有用。。 height[i]表示sa[i]和sa[i-1]的最长公共前缀,这东西求起来快同时好用,主要有三条性质: 定义LCP(i,j)=lcp(Suffix(SA[i]),Suffix(SA[j])。 1.对任意1&amp;lt;=i&amp;lt;j&amp;lt;k&amp;lt;=n,LCP(I,k)=min{LCP(I,j),LCP(j,k)} 2.设i&amp;l...
分类: 其他 发布时间: 08-08 23:40 阅读次数: 0

PTA 团体程序设计天梯赛-练习集 L1-034 点赞(20 分)C语言

L1-034 点赞(20 分) 微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点赞的纪录,分析这个人的特性。 输入格式: 输入在第一行给出一个正整数N(&amp;lt;=1000),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为“K F~1~...
分类: 编程语言 发布时间: 08-08 23:40 阅读次数: 0