排序:
默认
按更新时间
按访问量

NOIP2017游记

初三,第一年参加提高组,希望可以水个一等吧。  Day0  学校搞体艺节,然而初三的却要月测(真的无语)。 星期三四月测完后,终于可以放心复习了(可是半天能干嘛)。终于,在强大的阻力中,可以去复习半天啦。  6:40,来到机房开始复习。先看了一下数学,数论,图论,树等等高频考点。  9:30,开始...

2017-11-15 13:44:31

阅读数:365

评论数:4

NOIP2015提高组——运输计划(transport)

题目链接 题意:给定一棵有n个节点的树(带有边权),再给定m条树中的路径。允许将一条树边的权改为0,并使得这些路径的最长距离最小。输出该修改方案中这些路径中最长的一条。 (n,m 分析: 要求最大值最小,首先想到的是二分答案k,然后再判断是否可行。那么该如何判断可行性呢? 如果某一路径的距离大于k...

2017-10-30 13:52:56

阅读数:302

评论数:1

NOIP2014提高组——解方程(equation)

3.解方程 (equation.cpp/c/pas) 【问题描述】 已知多项式方程: 求这个方程在[1, m]内的整数解(n和m均为正整数)。   【输入】 输入文件名为equation.in。 输入共n+2行。 第一行包含2个整数n、m,每两个整数之间用一个空格隔开...

2017-10-07 13:38:15

阅读数:131

评论数:2

树链剖分

前言: 树链剖分,就是将树剖成一条条链,然后通过数据结构(如Treap,线段树,树状数组,Splay,LCT或者各种树套树)维护这些链,从而快速完成路径的权的统一修改,增加,求极值等。 其实,以前关于树剖的博客,我已经写过了。。。但由于写得太难看,最后删掉了。。。现在把它补上。 初一...

2017-08-17 14:49:47

阅读数:192

评论数:1

Treap

Treap(随机平衡二叉查找树)是一种很实用的平衡树,和笛卡尔树很像(笛卡尔树是用已知的键值和优先级来构造树,然后把RMQ转换为LCA,而Treap的优先级是随机的),它相当于是BST和最小堆的结合。众所周知,如果插入的序列是有序的,BST就会退化成链,从而影响到时间效率。而Treap的出现,正好...

2017-08-15 12:10:18

阅读数:133

评论数:0

容斥原理

容斥原理是一种极其重要的记数工具,在组合数学,概率学,数论等都具有非常重要的地位。 先普及一下集合的一些知识点: 1,是指集合A与B的交集,若A={1,3,4,7},B={3,7,8,10},则={3,7}。 2,是指集合A与B的并集,若A={1,3,4,7},B={3,7,8,10...

2017-08-14 09:39:21

阅读数:788

评论数:0

±1RMQ(约束RMQ)

±1RMQ其实是RMQ的一个特殊情况,它的特殊性体现在:序列中每两个相邻元素的差是1或-1。即: 对于这种特殊情况,有一种方法可以将RMQ的时间降至常数级别,即用的时间解决。 可以发现,如果LCA用DFS+RMQ的方法解决,则RMQ部分正好是±1RMQ。所以,如果会了这种方法,...

2017-08-02 17:43:27

阅读数:772

评论数:2

ST算法与LCA

上一次我们讲到了倍增算法。倍增算法是O(nlogn)-O(logn)的复杂度,这里我们介绍另外一种方法,可以达到O(nlogn)-O(1)的复杂度。事实上,在经过+-1RMQ的处理,可以做到O(n)-O(1)的复杂度。 先举个例子: 我们设L[i]为第i次访问到的节点编号,d[i]为第...

2017-08-01 18:17:47

阅读数:175

评论数:2

快速傅里叶变换FFT

多项式是非常实用的一个工具。定义:为一个n次多项式。           多项式乘法就是:用上述的办法,多项式乘法的时间复杂度就是平方级别的了。可以发现,用上述方法(即系数表示法),无论怎样进行优化,都不可以在根本上优化复杂度。造成这个原因是多项式的表示方法并不好。我们先来看另一种多项式的表示方法...

2017-07-18 14:15:25

阅读数:543

评论数:1

Codeforces比赛规则

Codeforces 简称: cf(所以谈论cf的时候经常被误会成TX的那款游戏). 网址: codeforces.com   这是一个俄国的算法竞赛网站,由来自萨拉托夫州立大学、由Mike Mirzayanov领导的一个团队创立和维护,是一个举办比赛、做题和交流的平台.举办比赛和做题就不说...

2017-07-17 08:04:05

阅读数:223

评论数:0

Codeforces Round #424(Div.2)

Codeforces Round 424(Div.2)的题解

2017-07-14 13:36:38

阅读数:240

评论数:0

Codeforces Round #423(Div.2)

这是我第一次在半夜爬起来打的比赛。虽然最后的结果不那么近人意,但还是积累了不少经验的。 23:30 WenDavid打了3次QQ电话,终于把我这个正在熟睡的懒虫给叫醒了(话说比赛在24:45才开始,他辣么早叫我干啥。。。)。不过就算我那时不醒,我也在24点调了4个闹钟了。。。无论如何,在朦胧之中,...

2017-07-12 03:48:20

阅读数:666

评论数:2

LibreOJ【配对游戏】

有 n 个人排成一排,一开始全部面向前方,然后随机朝左或是朝右转。 然后我们不断审查这个队列,每次选择两个面对面的相邻的人,将他们从队列中取出。 例如(> 表示向右, 表示向左): 队列 >>> 的消除过程为,>>> 到 >> 到 >...

2017-07-11 15:20:32

阅读数:148

评论数:0

求LCA的几种方法

关于实现LCA的三种不同方法

2017-07-10 16:31:29

阅读数:159

评论数:0

倍增算法(LCA)

在前面的博客中讲到,Tarjan算法是解决离线LCA的高效算法。可是,如果LCA要求强制在线呢? 这时有两种解决的办法,其中一种常数较小的就是倍增算法了(又称跳表法)。 顾名思义:就是利用倍增的思想来巧妙求LCA。 设gra[i][j]为节点i的2^j个祖先的编号。 不妨设这是一棵边权为1...

2017-07-10 16:26:50

阅读数:1815

评论数:0

NOIP2007提高组——矩阵取数游戏(game)

题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数。游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个。m次后取完矩阵所有元素; 2.每次取走的各个元素只能是该元素所在行的行首或行尾; 3.每次取数都有一个得...

2017-05-09 16:12:14

阅读数:563

评论数:0

GDOI2017总结

告别了GDOI2016,来到了GDOI2017 从初一到初二,历经了多少历程。 从上一年的40分,到这一年的200+ DAY0 从南海出发,到东莞,去了三个多小时……(话说回来的时候,只用了一个多小时)到了酒店,已经5点多了。。。 这一间酒店还不错,由衷感谢GDOI主办方。。。 ...

2017-05-04 11:01:35

阅读数:365

评论数:2

POJ1515

Street Directions Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 922   Accepted: 487   Special Judge Descr...

2017-04-27 08:22:14

阅读数:123

评论数:0

BZOJ3387栅栏行动

首先,很容易想到Dp。设f[i][0]表示第i个栅栏走左边的最短路,f[i][1]表示第i个栅栏走右边的最短路。 所以,我们要找一个刚好在第i个栅栏的左右边界下面的栅栏。如图所示: 则有: f[i][0] = min(f[k][0] + |Left[i] - Left[k]| , f...

2017-04-26 09:47:55

阅读数:129

评论数:0

浅谈Hash的应用

和Trie(字典树)一样,Hash其实是一个字典,可以存放数值或者是字符串。还可以用接近O(1)的时间进行查询或插入操作。 哈希中最重要的无非就是Hash函数了。Hash函数H(x)相当是一个映射,把x映射到一个表里面,从而解决各种问题。 由一道最简单的例题引入: 例1:现有n(n 样例输...

2017-04-19 09:11:50

阅读数:224

评论数:0

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