------数据结构------
帝国码农
星星的帝国,码农无数,我是最不亮的那一颗。
展开
-
区间求和
问题 给出长度为N的数列。数列的初始值是1, 2, 3, …, N。但是这个数列频繁地发生变更,要求出这期间某个连续部分的和。假设N是5的情况。初始为1, 2, 3, 4, 5。在这个情况下,把第3个数字变更为9,第4个数变更为10的话,就会变成1, 2, 9, 10, 5。此时,如果要求第2个数到第5个数的和的话,输出26就可以了。然后,在这个状态下,将第1个数字变更为-5,第三个数变更为5...原创 2018-03-15 16:34:02 · 1614 阅读 · 0 评论 -
计算辈分(并查集)
问题 计算辈分 我们国家有个独特的文化,就是把家族或亲戚之间的关系用辈分的单位来表示。这样的辈分会按照如下方式计算。 基本上把父母和子女之间定义为 1辈,这样计算人之间的辈分。比如说,我和爸爸,爸爸和爷爷都是1辈,我和爷爷成为2辈,爸爸兄弟和爷爷是1辈,我和爸爸兄弟成为3辈。当给出多个人的父母子女之间的关系时,请编写能计算提供的两个人辈分的程序。输入第一行给出所有人数 N。每个人的号码各个...原创 2018-03-15 00:56:14 · 3618 阅读 · 0 评论 -
同盟的同盟(并查集)
问题3-2 乐星村里有N个人。为了方便,我们把每个人用1到N号标记。第一次,因为这些人互相不认识,所以他们有“敌对关系”。但是他们总不能活在“敌对关系”中。所以这个村里面的人就一个一个结成了“同盟关系”。必然当某个A和B结成同盟关系的话,自然的A的同盟和B的同盟会相互结成同盟关系。随着这样的关系渐渐增多,构成了复杂结构的同盟关系。为了确定谁是谁的同盟,请编写查找关系的程序。为了能容易的了解同盟...原创 2018-03-30 16:59:59 · 299 阅读 · 0 评论 -
逆序对(朴素,树状数组)
【解题思路】计算过程等同于使用冒泡排序法,将输入的数据序列进行排序的算法,因此,此问题有另外一个名字:【计算冒泡排序次数】如果 不考虑数据规模及超时,直接进行排序,每移动一次就累加一次,最后输出累计的移动次数便是正解。【方法1:朴素算法】const int MAXI = 100002;int cnt[MAXI];int num[MAXI];int n,i,j,a...原创 2018-08-18 11:11:12 · 589 阅读 · 0 评论