题目大意:给你一棵树,有N个结点,N-1条边。最后询问距离树上两个点(u,v)最近的
公共祖先是多少。
比如上图:6和16的最近公共祖先就是4;14和1的最近公共祖先就是1。
思路:对于最近公共祖先LCA问题,最经典的离线算法是Tarjan-LCA算法。用链式前向
星存储图和询问,Head[]和Edges[]表示图(树),QHead[]和QEdges[]表示询问。集合
的操作用并查集实现。这道题里用了indegree[]数组来存储结点的入度,找到入度为0的
根结点root,调用LCA(root)。
Tarj...
分类:
编程语言 时间:
2014-12-31 21:35:07
阅读次数:
161
题目大意:John是一个农场主,他的牛很懒,拒绝按照John选的路走。John不得不找一条
最短的路。这道题的输入前半部分和POJ1984"Navigation Nightmare"相同。在每组数据
之后是一个整数K,接下来K行是询问(u,v)的曼哈顿距离(u,v是农场编号)。最后输出所有
询问结果。
POJ1984链接:http://poj.org/problem?id=1984
思路:本题输入有些特殊,给出的是某点在某点的某个方向(东西南北)有多远。由于输入数
据比较特殊。全部是有向边,且构不成回路,所...
分类:
编程语言 时间:
2014-12-31 21:31:53
阅读次数:
174
题目大意
有n个数,m个查询,对于每个查询,询问指定区间,有多少个数对的绝对值小于等于2。
解题思路
莫队O^1.5
首先将询问离线处理左端点进行编号,每sqrt(n)个为一组
sort结构体 当左端点编号相同时,比较右端点大小。小的放在前面。
对于每组询问暴力处理,只需处理当前新加入(删除的数字在当前区间内有多少点和它的绝对值只差小于2即可)
唯一要注意的是加点是...
分类:
编程语言 时间:
2014-12-31 20:15:07
阅读次数:
283
题目1 : 最小生成树一·Prim算法时间限制:10000ms单点时限:1000ms内存限制:256MB描述最近,小Hi很喜欢玩的一款游戏模拟城市开放出了新Mod,在这个Mod中,玩家可以拥有不止一个城市了!但是,问题也接踵而来——小Hi现在手上拥有N座城市,且已知这N座城市中任意两座城市之间建造道...
分类:
编程语言 时间:
2014-12-31 17:55:23
阅读次数:
188
题目大意:长时间战争过后,一场战争终于切断了Littleken和KnuthOcean王国的联系。
Littleken的指挥网络瘫痪了,现在最重要的事是建立一个临时的通信网络,这个任务交
给了Snoopy。
Snoopy觉得最重要的一点是要把命令传到被摧毁的网络中的每一个点上,所以他决定先
建立一个单向的传输网络。假设所有的传输节点都分布在一个平面上。如果Littleken的
命令想要从节点A传送到节点B上,必须建立一个单向电缆从节点A连接到节点B。为了
尽可能节省资源,要求通信网络所用的电缆长度最小(参考A...
分类:
编程语言 时间:
2014-12-29 21:27:36
阅读次数:
310
题目:EOJ1154 CAN YOU DFS? IDA*搜索算法
Description
在古埃及,人们使用单位分数的和(形如1/a的, a是自然数)表示一切有理数。
如:2/3=1/2+1/6,但不允许2/3=1/3+1/3,因为加数中有相同的。
对于一个分数a/b,表示方法有很多种,但是哪种最好呢?
首先,加数少的比加数多的好,其次,加数个数相同的,最小的分数越大越好。
...
分类:
编程语言 时间:
2014-12-27 11:28:42
阅读次数:
227
对列表排序a=[1,2,3,4,5]printa.sort()2.给你一个字符串a,如a=‘12345’,对a进行逆序输出a。printa[::-1]3.给你一字典a,如a={1:1,2:2,3:3},输出字典a的key,以‘,‘链接,如‘1,2,3‘。print‘,‘.join([str(i)foriina.keys()])或者b=list(a.keys())foriinrange(len(b)): b[i]=s..
分类:
编程语言 时间:
2014-12-15 22:05:11
阅读次数:
198
题目大意:求n!在k进制下的位数
即
Stirling公式:
数据范围小就暴力,数据范围大套用Stirling公式
注意先利用log来避免数字过大而失精 最后答案要开long long
#include
#include
#include
#include
#include
using namespace std;
const double pi=acos(-1.0),e=ex...
分类:
编程语言 时间:
2014-12-12 16:40:22
阅读次数:
154
题目大意:给定一个多边形,求对称轴数量
我X 这究竟是怎么想到KMP的……
首先 将边字符化 即找到这个多边形的中心 然后用与中心构成的三角形的边-角-边的方式表示这条边
将边顺时针扫一遍 然后倍增至长度为2n-1 再逆时针扫一遍 逆时针扫的那遍在顺时针那遍中出现的次数就是对称轴数目
用KMP算法就能搞出来 证明自己YY吧
出题人卡精度丧心病狂。。。
#include
#includ...
分类:
编程语言 时间:
2014-12-10 18:09:39
阅读次数:
200
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1046
有人说这题是NOIP难度?表示怀疑,蒟蒻认为此题难度略大于NOIP。。。。
这个题的序列长度nhttp://www.slyar.com/blog/longest-ordered-subsequence.html中有详细讲解。
由于题目题意要求,我们需要求出以每个数字开头...
分类:
编程语言 时间:
2014-12-03 19:25:46
阅读次数:
159