- 博客(4)
- 收藏
- 关注
原创 LCA
概念: 两个点最近的共有的祖先节点。 求法: 1.向上标记法 这种算法,emmmmm....可以把它理解为是暴力,即: 假设树上有两个点x,y,那么从x走到根节点,将路过的点都进行标记,再从y向上走到根节点,第一次遇到已经标记过的节点时,就找到了LCA(x,y)。 2.Tarjan求LCA 该算法是一种离线算法,即在一次操作中将问题全部解决。具体过程如下: 1.枚举与当前节点有边相...
2018-07-21 13:44:57 657
原创 NOI2002银河英雄传说
题目大意: 有一个划分为N列的星际战场,各列依次编号为1,2,……,N。有N艘战舰,也依次编号为1,2,……,N,其中第i号战舰处于第i列。 有M条指令,每条指令格式为以下两种之一: 1.M i j,表示让第i号战舰所在列的全部战舰保持原有顺序,接在第j号战舰的尾部。 2.C i j,表示询问第i号战舰与第j号战舰当前是否处于同一列中,如果在同一列中,它们之间间隔了多少艘战舰。 其中N&...
2018-07-17 20:07:38 772
原创 线段树(一)
概念: 线段树(Segment Tree)由n个包含了1段区间(线段)的完全二叉树组成的树形数据结构。 思想: 利用它的树形结构,将其包含的数据进行快速的修改和查询。(可用于维护dp) 基本操作: 存储方式: struct Tree{ int left,right,value; //left表示左端点,right表示右端点,value表示存储的值 }tree[MAXN*4+1];...
2018-07-17 07:52:13 120
原创 贪心专题
概念:通过正确的贪心策略来实现程序的最优解。常用方法:1.微扰2.范围缩放3.决策包容性4.反证法5.数学归纳法各类例题:一.智力大冲浪大致题意:刚开始有m元钱,有n个小游戏,且每个小游戏有一个对应的时间段,每没有完成一个小游戏会扣去相应的钱数。求最多能获得多少钱。其中∑ 扣去的钱数<m.做法:将每个游戏的时间段和钱数用结构体存储,以扣去的钱数为第一关键字进行从大到小排序; 把i从1-n进行...
2018-07-02 18:29:58 300
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人