5 virgoDd

尚未进行身份认证

Good afternoon,good evening and good night

等级
TA的排名 1w+

我的Hexo使用实践(二)

一 设置主题下载NexT使用NexT二 配置信息同步建立hexo分支恢复配置将Blog成功搭到Github后就要考虑一些配置问题了,需要更加美观的主题,换了电脑或者重装系统后还需要快速的从以前的配置恢复,下面就解决这些问题。一. 设置主题Hexo官网就提供了很多主题,我是用的是NexT主题,简单大方且不失美观,以下以NexT主题为例,其余主题也类似。1. 下载NexT推荐使用最新稳定版本

2017-03-11 10:20:31

我的Hexo使用实践(一)

一 安装Hexo安装Nodejs和Git安装Hexo二 部署到Github创建你的Github Pages repository初始化Hexo部署到Github我的新博客是由Github Pages和Hexo搭建的,分享以下我的使用实践。一. 安装Hexo1. 安装Node.js和Git必须安装了Node.js和Git才能安装使用Hexo,按照Hexo官方提供的教程安装即可,Windo

2017-03-11 10:00:05

HDU 3374 String Problem(最小表示法·KMP)

题意  给你一个环形串  输出其最小表示法的首字母位置  最大表示法的首字母位置  以及和对应位置等价位置的个数最小表示法指一个循环串以某一位开始时对应的串的字典序最小  这个串就是该循环串的最小表示法 先看一下求字符串最小表示法的过程  可以看2003年国家集训队论文集中周源的论文令 p 表示字符串 s 的最小表示法的下标,  l = strlen(s)  s = s + s

2015-10-06 10:43:25

HDU 2328 Corporate Identity(Trie·最长公共子串)

题意  输出n个串的字典序最小的最长公共子串可以枚举第一个串的所有子串  然后对每个串kmp匹配  比较复杂  而且慢  发现和HDU2846(求模式串在n个串中出现的次数)有类似之处  都可以用Trie来处理  一个串的子串肯定是其某个后缀的前缀   我们把第一个串的所有后缀都插入到Trie中  最长公共子串肯定是在这个Trie里面的  因为它肯定是第一个串的子串  在插入后面的串的后缀时

2015-10-05 16:03:25

HDU 1074 Doing Homework(DP·状态压缩)

题意  有n个作业要做   给你每个作业的最后期限  和做完这个作业需要的时间  作业每超过最后期限一天就会扣一分  只能把一个作业做完了再做另一个作业  问做完所有作业至少扣多少分作业最多只有15个  看到这个数字容易想到是状态压缩  dp[i]表示i对应状态的最小扣分  i转换为二进制后为1的位表明该位对应的作业已经做了  为0的位没做  那么dp[i] = min{dp[k] + c

2015-08-28 14:47:03

HDU 1024 Max Sum Plus Plus (DP·滚动数组)

题意  从n个数的数组中选出不相交的m段  求被选数的和的最大值Max Sum 的升级版  不只是要选一段连续的了  而是选m段  思想还是类似  依旧dp状态和状态转移方程不是很难想  在 Max Sum 这个问题中 dp[i] 表示的是以第i个数结尾的一段的 Max Sum  由于这里还有一个多少段的状态  于是这里令 dp[i][j] 表示在前 i 个数中选取 j 组  且第 i 个

2015-08-27 10:02:55

POJ 1128 Frame Stacking(拓扑排序·打印字典序)

题意  给你一些矩形框堆叠后的俯视图  判断这些矩形框的堆叠顺序  每个矩形框满足每边都至少有一个点可见  输入保证至少有一个解 按字典序输出所有可行解和上一题有点像  只是这个要打印所有的可行方案  建图还是类似  因为每个矩形框的四边都有点可见  所以每个矩形框的左上角和右下角的坐标是可以确定的  然后一个矩形框上有其它字符时  就让这个矩形框对应的字符和那个其它字符建立一个小于关系  由

2015-08-20 10:29:13

POJ 2585 Window Pains(拓扑排序·窗口覆盖)

题意  有一个4*4的显示器  有9个程序  每个程序占2*2个格子  他们的位置如图所示  当你运行某个程序时  这个程序就会显示在顶层覆盖其它的程序  给你某个时刻显示器的截图  判断此时电脑是否死机了(出现了不合法的覆盖关系)拓扑排序的应用  关键是建图  当一个程序A的区域上有其它程序B时  说明A是在B之前运行的  那么我们可以建立一个A#include #include #

2015-08-19 16:11:44

POJ 1094 Sorting It All Out(拓扑排序·判断+实现)

题意  由一些不同元素组成的升序序列是可以用若干个小于号将所有的元素按从小到大的顺序 排列起来的序列。例如,排序后的序列为 A, B, C, D,这意味着 A 每来一个小于关系就进行一次拓扑排序  直到出现冲突(也就是出现了环)或者已经能确定顺序  当结果已经确定时  后面的小于关系也就没有必要处理了  因此可以用一个flag标记结果是否已经确定#include #include #i

2015-08-19 14:59:12

HDU 2871 Memory Control(线段树·区间合并·Vector)

题意  模拟内存申请  有n个内存单元  有以下4种操作  Reset  将n个内存单元全部清空  New x  申请一个长度为x的连续内存块  申请成功就输出左端  Free x  将x所在的内存块空间释放  释放成功输出释放的内存始末位置  Get x  输出第x个内存块的起始位置Reset 和 New 都是基本的区间合并知识  比较简单  Free和Get需要知道内层块的

2015-08-16 21:32:22

POJ 2991 Crane(线段树·向量旋转)

题意  有一个Crane由n条线段连接组成  每个连接点处均可以任意旋转  给你n条线段的长度  然后又m次旋转操作  给你p和r  将第p和第p+1条线段之间的角度旋转为r  即第p条线段绕p的终点逆时针旋转r度后能够与第p+1条重合  问每次旋转后最后一条线段的终点坐标可以发现  旋转第p+1条线段时  p+1后面的所有线段也一起旋转了  可以把Crane分解为n个向量  这些向量

2015-08-16 15:16:48

HDU 3265 Posters(线段树扫描线·矩形框面积并)

题意  把一些矩形海报挖去一部分小矩形贴在指定位置  问最后海报覆盖的面积一个矩形框可以分割成4个独立的小矩形  然后就能用扫描线求面积并了#include #include using namespace std;const int N = 100005, M = N << 2;typedef long long ll;struct SLine{ int x, y1

2015-08-15 17:56:37

HDU 1828 Picture(线段树扫描线·周长并)

题意  给你一些矩形的左下和右上的坐标  求这些矩形的周长并也先来看点图  和面积并类似  求周长并也可以对每条竖边从左往右进行扫描  每次周长增加了多少呢 可以发现y方向上对周长增加的量就是扫描线上线段的总长度的改变量  x方向增加了线段段数 * 2 倍的与下一条竖边间的距离  因为每一段都会对应两个横边那么我们需要维护线段的总长度len和线段的段数num  len和

2015-08-14 14:04:24

HDU 3634 City Planning (离散化)

题意  给你n个矩形  每个矩形都有自己的value  你可以任意改变矩形的表里关系   被覆盖的地方的value取最表层的   求总value的最大值刚看了扫描线  感觉这个可以用扫描线做就直接写了  其实直接离散化就行了  因为最多也就20个矩形  那坐标最多也就40个  那我们对坐标进行离散化  然后将矩形按value从小到大一个个的放  暴力更新覆盖格子的value  最后直接将2n

2015-08-14 09:32:37

HDU 1542 Atlantis(线段树扫描线·面积并)

题意  给你一些矩形的左下和右上的坐标  求这些矩形的面积并最基础的扫描线  理解了就是个水题了  先看一些图吧                                               恩  看完了有什么感觉没有  那些红色的线就可以当作传说中的扫描线  就像从左到右扫描嘛  可以发现  矩形有竖直边的地方就有这些线  这些线把把拼在一起的矩形切

2015-08-12 21:10:56

HDU 3397 Sequence operation(线段树·成段更新·区间合并·混合操作)

题意  给你一个只有0, 1的数组  有这些操作  0. 将[a, b]区间的所有数都改为0  1. 将[a, b]区间的所有数都改为1  2. 将[a, b]区间的所有数都取反 即与1异或  3. 输出区间[a, b]中1的个数  即所有数的和  4. 输出区间[a, b]中最大连续1的长度对于所有的3, 4操作输出对应的答案单个的操作都很简单  但搞在一起就

2015-08-12 10:12:46

HDU 3308 LCIS (线段树·单点更新·区间合并)

题意  给你一个数组  有更新值和查询两种操作  对于每次查询  输出对应区间的最长连续递增子序列的长度基础的线段树区间合并  线段树维护三个值  对应区间的LCIS长度(lcis)  对应区间以左端点为起点的LCIS长度(lle)  对应区间以右端点为终点的LCIS长度(lri)  然后用val存储数组对应位置的值  当val[mid + 1] > val[mid] 的时候就要进行区间合并操

2015-08-11 09:01:24

GCD·我所理解的扩展欧几里得

题意  求不定方程 ax + by + c = 0  满足 x1 的解的个数这里弱先来预习一下扩展欧几里得算法 ( O_O ) 欧几里得算法先来看看欧几里得算法  也就是辗转相除法  gcd(a,b) = gcd(b, a%b);简单的证明令 a%b = r   设 d 是 a, b 的公约数即d|a && d|b又 d'r = a – kb 所以

2015-08-10 15:19:01

UVa 11426 GCD - Extreme (II) (欧拉函数应用·O(N*logN))

题意  令  G(n) = sum{gcd(i, j) | 0  给你一个n  输出G(n)令 F(n) = sum{gcd(i, n) | 0 那么有递推式 G(n) = G(n-1) + F(n) , G(0)  = 0 也就是说只用求出F(n) 就能递推求出 G(n)了  而求F(n)就比较容易了 对于i  设 x < i , gcd(x,i) = 1即x, n 互质

2015-08-09 17:52:29

LightOJ 1236 - Pairs Forming LCM (LCM·唯一分解)

题意  给你一个数n  求满足lcm(a, b) == n, a 容易知道 n 是a, b的所有素因子取在a, b中较大指数的积先将n分解为素数指数积的形式  n = π(pi^ei)    那么对于每个素因子pi  pi在a,b中的指数ai, bi 至少有一个等于pi, 另一个小于等于pi先不考虑a, b的大小  对于每个素因子pi1. 在a中的指数 ai == ei   那么

2015-08-07 09:27:32

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取