http://poj.org/problem?id=3687 非常坑的一道题,最后快要绕晕了。。 题意:有N个球,重量分别是1~N,给着n个球贴上标签。输入n,m代表n个球和m条边(a b),代表 标签为a的要比标签为b的轻。最后输出标签1~N对应的重量(注意是重量,而不是轻重关系),还有要注意“ you should output the one with the smallest weig
并查集 对于转移次数,开始我自以为想出了一个效率很高的解法,就是在路径压缩的时候统计结点所在的层数,加到该结点的times值里面,也就是这样: 自己感觉还很良好,因为这样效率和原来几乎差不多,交上去却wa,原来,是没有考虑这样的情况: 如果在结点E或F进行查找并且压缩路径,就会成为这样(以find(e)为例): 这样在这里得到的C B E F的time
第一次跳坑 POJ 3687 Labeling Balls Description Windy has N balls of distinct weights from 1 unit to N units. Now he tries to label them with 1 to N in such a way that: No two balls share the same label
题目: Nezzar has n balls, numbered with integers 1,2,…,n. Numbers a1,a2,…,an are written on them, respectively. Numbers on those balls form a non-decreasing sequence, which means that ai≤ai+1 for all 1≤
从结果来看, boxes中的任意一位index中的元素如果为1,则向右边挪动到index+1的cost是1,index+2的cost是2,直到Len(boxes) - 1。同理此位置的1向左边挪动也是同理的cost产生。于是从左向右遍历一次,找到一个1,则往结果数组中以找到1的index+1为起始点,顺序增加cost。从左往右的cost计算则把res数组和boxes数组反过来,重复以上过程。 c