摘要: 题意:有N个方块,M个操作{“C x”:查询方块x上的方块数;“M x y”:移动方块x所在的整个方块堆到方块y所在的整个方块堆之上}。输出相应的答案。 解法:带权并查集。每堆方块作为一个集合,维护3个数组:fa[x]表示x方块所在堆的最顶部的方块;d[x]表示x方块所在堆的最底部的方块;f[x]表 阅读全文
posted @ 2016-11-02 22:13 konjac蒟蒻 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 题意:假设一种音乐播放器有一个乱序的功能,设定每播放S首歌为一个周期,随机播放编号为1~S的歌曲。现在给一个长度为N的部分播放记录,请统计下次随机排序所发生的时间的可能性种数。(1≤S,N≤100000) 解法:由“连续的S个数”想到滑动窗口。O(n)循环一次,每次判断一个周期的[i-S+1,i]是 阅读全文
posted @ 2016-11-02 20:05 konjac蒟蒻 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 模版题为【poj 1287】Networking。 题意我就不说了,我就想简单讲一下Kruskal和Prim算法。卡Kruskal的题似乎几乎为0。(●-`o´-)ノ 假设有一个N个点的连通图,有M条边(不定向),求MST(Minimal Spanning Tree)最小生成树的值。 1.Krusk 阅读全文
posted @ 2016-11-02 09:57 konjac蒟蒻 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 题意:平面上有N个点(1≤N≤1000),若要新建边,费用是2点的欧几里德距离的平方。另外还有Q个套餐,每个套餐里的点互相联通,总费用为Ci。问让所有N个点连通的最小费用。(2组数据的输出之间要求有换行) 解法:利用二进制枚举套餐,时间复杂度是O(2QN2+N2logN)。关于时间复杂度,枚举:二进 阅读全文
posted @ 2016-11-02 08:37 konjac蒟蒻 阅读(733) 评论(0) 推荐(0) 编辑