摘要:
1 //以一号节点为根节点,求出所有节点到根结点的距离,以及所有点的子节点的个数 2 //然后计算根据已知信息计算所有节点到当前结点的距离 3 //然后扫描n个点,O(n)求解 4 #include 5 using namespace std; 6 const int maxn = 50086; 7 struct node { 8 int y, net; 9 }e... 阅读全文
摘要:
对于边权最大值最小的问题思路非常简单:首先是排序后跑最小生成树(Kruskal)每一次循环都判断一下起点和终点是否联通了如果联通了,输出当前边的边权即可。 思想解释就是:我们首先保证了边权是单调递增的,如果在某一个时刻,将两个联通块进行了合并,使得起点和终点能够联通,而在前一个时刻不能我们想,此后我 阅读全文
摘要:
题目描述Pb 去郊游啦!他来到一块空地打算在这里搭一个帐篷。但是,帐篷的四个支撑点不能在落在任何位置上,而只能落在一些固定点上。现在,他找到地面上有 N 个点可以支撑帐篷。(四个支撑点必须围成一个矩形) 他想知道依次每加多一个点,搭帐篷的方法数。输入格式第1行:一个整数N第2行至N+1行:每行有两个 阅读全文
摘要:
题目描述给定n个由小写字母组成的字符串,请你求出一个字母表顺序,使得这n个字符串是按照字典序升序排列的,数据保证存在合法的字母表顺序。如果存在多个解,输出字典序最小的那个。 输入格式第一行一个整数n.接下来n行,每行一个字符串。输出格式一行,一个a到z各出现一次的字符串,表示字母表顺序 。 样例读入 阅读全文
摘要:
分块,是一种可以说是,相当,暴力的数据结构。分块算法的思想是通过适当的划分,预处理一部分信息保存下来,用空间换取时间,达到时空平衡。基本操作是,将一段序列,分成一定数量的块,每一块有一个长度,表示一段区间。对于区间操作,通过对完整块的整体操作和对不完整块的暴力操作而使复杂度尽可能的低一般来讲,块的大 阅读全文