自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 贪心 ? OR DP?

守望者的逃离Description恶魔猎手尤迫安野心勃勃.他背叛了暗夜精灵,率深藏在海底的那加企图叛变:守望者在与尤迪安的交锋中遭遇了围杀.被困在一个荒芜的大岛上。为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会沉下去,到那时,刀上的所有人都会遇难:守望者的跑步速度,为17m/s, 以这样的速度是无法逃离荒岛的。庆幸的是守望者拥有闪烁法术,可在1s内移动60m,不过每次

2016-05-28 22:22:48 588

原创 Codeforces Round #200 (Div. 1) D - Water Tree 很经典而且很有趣的树 上dfs问题

这道题疯狂wa了一大波,因为自己的线段树水平不够,更新 和 区间的理解还是大大的不够,所以一定要去多多学习。 题意: 给一颗树,有多次操作,有三种操作: 1. 把节点v 的所有 儿子节点(子树下的所有点)都充满水,2把节点v 的所有父亲节点的水都抽调。3.询问某个节点里面是否有水.一开始很年轻 感觉上 先跑出 dfs序,然后线段树维护一下节点flag值 就行了 好像感觉并不对,仔细想了想,

2016-05-28 21:53:30 272

原创 善用stl。。。。。。。。Codeforces Round #316 (Div. 2) D - Tree Requests

http://codeforces.com/contest/343/problem/D题意: 给一颗树, 每一个节点上有一个字符, 有m次询问,每一个询问:rot,dep。 表示问:在节点rot的所有子树中,(离根节点)深度为dep 的点能不能组成回文的字符串。一开始年轻的想法: 就是觉得太麻烦了,好难做。 然后看了看别人的算法,觉得自己好菜啊,好菜啊,好菜啊。 : 运用stl 很好解决

2016-05-28 21:42:34 269

原创 Codeforces Round #121 (Div. 1) C. Fools and Roads 经典的lca前缀和问题

题意: 给你一棵树,有n个点,并按顺序给你n-1条边, 然后有m次操作,每一次操作输入两个点a,b表示从a走到b点, 把路径中的所有边都染色一遍, 最后按顺序输出所有边被染色的次数。第一眼看这道题就感觉这是一个很经典的问题。 首先我们知道对于a,b必然先找出ab的lca。 然后 朴素想法: 从a 向上到lca,从b向上到lca ,每条边的flag 都++,最后输出, 这种做法肯定是TLE 的,

2016-05-25 16:57:47 456

原创 CodeForces 29 DAnt on the Tree, 超经典 裸dfs(序)

我都不知道 是不是只要会dfs 就能写这题了,真是醉了。 我还去想着用lca 做,虽然可能解出来,但只要把n变大到10000 就GG。 然后dfs序,感觉自己现在毛皮都没有掌握, 只会套用现成的固定的东西算什么会啊, 思维也被算法的框架给限制住了,这真的是一个很可怕的事情,希望我能够明白,算法毕竟是算法,思维才是最重要的东西。 有了思维,有很多很多的算法来解决你的需求,甚至可以写出很简单的代码

2016-05-25 16:17:22 417 1

原创 【线段树+dfs序 模板】hdu 5692 ,百毒之星A 题目 snacks dfs 序 +线段树维护最大值

其实 讲道理这是一道不难的“裸题”现在是 凌晨两点 ,不想打太多字,进入正题吧: 题意中文 : 百度科技园内有n个零食机,零食机之间通过n−1条路相互连通。每个零食机都有一个值v,表示为小度熊提供零食的价值。由于零食被频繁的消耗和补充,零食机的价值v会时常发生变化。小度熊只能从编号为0的零食机出发,并且每个零食机至多经过一次。另外,小度熊会对某个零食机的零食有所偏爱,要求路线上必须有那个零食机。

2016-05-24 02:25:54 595

原创 dfs 序 + 树状数组 poj 3321

dfs序: 很简单 很实用 很几把屌的一个东西,然而自己一直不会. 对树 进行 dfs 前序遍历, 那么对于 节点i ,F1[i]表示第一次出现的位置, F2[i]表示第二次出现的位置。 那么子树 就是 F1 –F2 之间的节点的和,即树状数组里面操作: query(F2[i]) - query (F1[i]-1) , poj 3321 题意: 给一颗树,n个节点,n-1条边

2016-05-23 00:48:56 203

原创 map 有log n 的时间复杂度 map 有log n 的时间复杂度 map 有log n 的时间复杂度 map 有log n 的时间复杂度 map 有log n 的时间复杂度 map

map 有log n 的时间复杂度 map 有log n 的时间复杂度 map 有log n 的时间复杂度 map 有log n 的时间复杂度 map 有log n 的时间复杂度 map 有log n 的时间复杂度 map 有log n 的时间复杂度 用数组 记录不了负数 +n就好 用数组 记录不了负数 +n就好 用数组 记录不了负数 +n就好 用数组 记

2016-05-22 16:44:52 467

原创 poj 3694Network 双联通分量+lca

输入: 3 2 1 2 2 3 2 1 2 1 3 题意就是先输入n,m 表示一颗树有n个节点,m条无向边。然后又q次操作, 每一次操作 输入i,j 表示在节点i和节点j之间加一条边,并且询问在加边之后的图中存在多少个桥。在这里先感谢大牛: http://www.cnblogs.com/scau20110726/archive/2013/06/14/3135095.html 他的博

2016-05-18 17:29:42 280

原创 【在线lca 模板】LCA 练习题2 : hdu 3078 + poj2763 我要记一辈子的s b错误

http://acm.hdu.edu.cn/showproblem.php?pid=3078 题意: 给一个n,q 然后给出n个节点的权值 接下来n-1 行,每行给一条无向边连接两个节点。 然后q行 每行一个操作: 输入 三个数 a,b,c 若a=0 ,则将点b 的权值改为c 若a!=0 ,则操作是询问 从 b -c 路径上所有点的权值 第K大是多少首先得明确一个观点: 这种

2016-05-16 15:05:38 650

原创 【离线Tarjan 模板】LCA tarjan 算法 练习: hdu 2586 + poj 1986

个人一直觉得kuangbin大牛的LCA板子 感觉有点不太好用,于是在这个大牛的博客帮助下,更换了自己的板子; http://www.cnblogs.com/scau20110726/archive/2013/05/26/3100265.htmlhdu 2586, 给一颗树 ,每一条边有权值,然后m次询问,每一次询问两个点:i,j。 输出 i,j的最短距离。#include <iostream>

2016-05-16 03:02:19 465

原创 Codeforces Round #352 (Div. 2) D Robin Hood : 模拟

给一个 a 序列, 长度为n, 有k天,每一天最大值减1,最小值+1. 问k天之后,最大值减最小值是多少。比赛的时候疯狂卡C,根本没时间看D,然后发现其实D并不难,GG这个可以用一个模拟的思路来做(虽然看到有人说是简单二分) 模拟的思路: 对于最大值 我们可以从右往左找, 对于每一个a[i]如果我要把这个值设置为 最大值,那么后面n-i个都是maxn 而对于i有最大值>=a[i],如果最

2016-05-15 23:33:13 217

原创 LCA 离线算法: tarjan

贴一个大牛的见解,写的很好,深入浅出: http://blog.csdn.net/geniusluzh/article/details/6609685 对于最近公共祖先问题,我们先来看这样一个性质,当两个节点(u,v)的最近公共祖先是x时,那么我们可以确定的说,当进行后序遍历的时候,必然先访问完x的所有子树,然后才会返回到x所在的节点。这个性质就是我们使用Tarjan算法解决最近公共祖先问题的核

2016-05-15 17:33:11 457

原创 LCA的在线算法, DFS编号 + ST来rmq。

先讲讲 rmq的dp思想: 加入A[i] 是我们要求区间最值的数列,F[i,j]表示从第i个数起连续2^j 个数中的最大值。 例如: A : 3 2 4 5 6 8 1 2 9 7 F[1,0] 表示从第一个数开始长度为2^0=1 的最大值, 就是三这个数。同理F[1,1]=max(3,2)=3; F[1,2]=max(3,2,4,5)=5………..且F[i,0]=i; 初值已经有了, 求

2016-05-13 23:42:17 320

原创 点双连通 练习

某个图的点双联通分支里面必然是没有割点存在的, 在搜索树中不停地找,如果找到割点 ,我们便将栈中的所有边都找出来,然后放进一个点双连通块中即可。割点可以属于多个双连通块, 但是其他点和边只能属于一个块.原题就是 亚瑟王要骑士开会, 给一些边,边链接两个骑士,这两个骑士不能坐一起,问最少要减去多少骑士 建立补图,表示边连接的两个骑士可以坐在一起。然后我们要找点连通块中的奇数圈,定理写在代码中了。

2016-05-04 23:37:27 323

原创 边双连通 练习

点双连通: Poj 3177 题意:给一个无向连通图求最少加几条边 变为一个边双联通的图(两个农场之间奶牛可以选择不止一条路)用tarjan将原来的边双连通块缩点,然后找到叶子节点ans , 加的边数= (ans+1)/2 ;#pragma comment(linker, "/STACK:1024000000,1024000000")#include <cstdio>#include <c

2016-05-04 23:35:57 317 2

原创 割点,桥,双连通分量Tarjan ,入门练习

POJ 2117 求在一个无向图中,删去一个点,图中最多的连通块有多少个。 因为是无向图,初识的连通块block在,dfs里面就可以找到,然后我们只要找到割点,记录增加的连通块数目,最后扫一遍 取最大值就好了! Wa的原因:初识化的ans 应该是初识连通块-1,我没读题,看样例做的,所以没怎么注意#include <cstdio>#include <cmath>#include <cstr

2016-05-02 20:09:35 561

浅析ZooKeeper实现原理.pptx

最近看了下zk的资料和源码,分享一下

2021-07-23

空空如也

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

TA关注的人

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