bzoj 3528 [ZJOI2014] 星系调查 题解

【原题】

星系调查

【问题描述】

银河历59451年,在银河系有许许多多已被人类殖民的星系。如果想要在行

星系间往来,大家一般使用连接两个行星系的跳跃星门。  一个跳跃星门可以把

物质在它所连接的两个行星系中互相传送。

露露、花花和萱萱被银河系星际联盟调查局任命调查商业巨擘ZeusLeague+

的不正当商业行为。

在银河系有N个已被ZeusLeague+成功打入市场的行星系,不妨标号为

1,2,...,N。而ZeusLeague+在这N个行星系之间还拥有自己的M个跳跃星门。使

用这些跳跃星门,ZeusLeague+的物资就可以在这N个行星系中两两任意互相传

输。由于经费问题,跳跃星门的个数不会超过行星系的个数。

露露在颇费周折之后得到了ZeusLeague+在这N个行星系中的各自的贸易总

额C[i]。

萱萱设计了一个经济学特征指标D[i]来度量这N个行星系的经济学特征。于

是,我们可以用二元组(C[i],D[i])来表示第i个行星系的XP(Xuan‘s Position)。现

在假设我们有k个行星系的XPs,把它们放置在二维平面上,然后我们用一条直

线去拟合这些XPs。定义一条直线与XPs的相斥度为这条直线到各个XP的Euclid

距离的平方之和。再令XPs的线性假设相斥度为所有直线与XPs的相斥度中的

最小者。那么,这个值越小,ZeusLeague+在这k个行星系中的相互贸易活动就

越可疑,从而值得进一步调查。花花负责计算许多行星系对(u,v)的非可疑度。一

条跳跃星门航线的非可疑度被定义为它经过的所有行星系(包括起点和终点)的

XPs的线性假设相斥度。而一个行星系对(u,v)的非可疑度则被定义为所有以u为

起点,v为终点的跳跃星门航线的非可疑度中的最小值。一条跳跃星门航线是指

从某个行星系开始,通过跳跃星门依次到达某些行星系,然后终止,并且中途不

重复经过行星系,这样的一个过程。

花花负责计算许多行星系对(u,v)的非可疑度。一条跳跃星门航线的非可疑度

被定义为它经过的所有行星系(包括起点和终点)的XPs的线性假设相斥度。

而一个行星系对(u,v)的非可疑度则被定义为所有以u为起点,v为终点的跳跃星

门航线的非可疑度中的最小值。一条跳跃星门航线是指从某个行星系开始,通过

跳跃星门依次到达某些行星系,然后终止,并且中途不重复经过行星系,这样的

一个过程。

在花花数天夜以继日的工作之后,平行调查组的你——大名鼎鼎的计算机科

学家Hcceleration.Gerk.Gounce不忍心看到她这样不眠不休,于是你在完成了手

头的工作之后决定帮一帮她。

【输入格式】

输入文件inv.in 的第一行是N,M,分别表示这个银河系内的行星系的个数

以及跳跃星门的个数。

接下来N行,每行2个正整数C[i], D[i],表示第i 个行星系的XP(Xuan‘s

Position)。

接下来的M行来描述跳跃星门,每行2个正整数u[i],v[i],表示有一个连接

着行星系u[i]和v[i]的跳跃星门。注意这个连接是无向的。不会存在自己连向自

己的情况。也不会存在重复连接的情况。

接下来的一行,有一个正整数Q,表示花花需要计算的非可疑度的行星对数。

接下来的Q行,每行2个正整数s[i], t[i],表示花花需要计算从s[i]到t[i]的

非可疑度。

【输出格式】

输出文件inv.out总共Q行,每一行一个实数,表示花花第i次需要计算的答

案。你的答案需要和标准答案的差不超过0.01才能得分。

【样例输入】

6 6

3 4

5 6

1 3

4 4

3 3

2 4

1 2

1 3

2 3

2 4

3 5

5 6

3

3 6

2 4

4 6

【样例输出】

0.66667

0.00000

1.67544

【数据规模与约定】

提示:我们把行星系抽象成一个点,跳跃星门抽象成一条边。那么题目要描

述的是一张边数不会超过点数的联通无向图。

【分析】先直接列出了一个很傻X的方程:

(图破了,就将就着看下面的第一个式子吧)

然后就不知道应该怎么办了,暴力展开?没什么用。显然询问Q不是吃素的,每次必须转化为LGN的算法。

看了网上一篇大牛的题解,当时整个人都不好了——就是暴力 展开。

以下是细节。

太神了!推是很好推,我真正动容的是:那么多项竟然没有推错?!

瞬间就会了。我们维护从根节点到某一个点的上述所有值的和。

(可以开一个结构体,重载+,这样会方便很多)

先不考虑环的情况。若计算x到y的路径,设z=LCA(x,y),那么我们用x、y、z带出所有项。

然后就是O(1)算出δ的值了。

如果有环,先用并查集或克鲁斯卡尔或dfs或bfs求出多出的那条边的左右两点。

我们只需分类讨论环的左右点和x、y的关系,用同样的方法求解。

话说我在最后一步的时候还推错了,囧。

代码丑,就不放了。

bzoj 3528 [ZJOI2014] 星系调查 题解,布布扣,bubuko.com

时间: 2024-10-09 23:11:00

bzoj 3528 [ZJOI2014] 星系调查 题解的相关文章

bzoj 3528: [Zjoi2014]星系调查

Description 银河历59451年,在银河系有许许多多已被人类殖民的星系.如果想要在行 星系间往来,大家一般使用连接两个行星系的跳跃星门.  一个跳跃星门可以把 物质在它所连接的两个行星系中互相传送. 露露.花花和萱萱被银河系星际联盟调查局任命调查商业巨擘ZeusLeague+ 的不正当商业行为. 在银河系有N个已被ZeusLeague+成功打入市场的行星系,不妨标号为 1,2,...,N.而ZeusLeague+在这N个行星系之间还拥有自己的M个跳跃星门.使 用这些跳跃星门,ZeusL

bzoj 3519: [Zjoi2014] 消棋子 题解

[序言]在大家怀疑的眼光下,我做了一个中午和半个下午.调了一个晚上的题目总算A了! [原题] 消棋子是一个有趣的游戏.游戏在一个r * c的棋盘上进行.棋盘的每个格 子,要么是空,要么是一种颜色的棋子.同一种颜色的棋子恰好有两个.每一轮, 玩家可以选择一个空格子(x, y),并选择上下左右四个方向中的两个方向,如果 在这两个方向上均存在有棋子的格子,而且沿着这两个方向上第一个遇到的棋子 颜色相同,那么,我们将这两个棋子拿走,并称之为合法的操作.否则称这个操 作不合法,游戏不会处理这个操作.游戏的

BZOJ3528: [Zjoi2014]星系调查

唉,看到这题直接想起自己的Day1,还是挺难受的,挺傻一题考试的时候怎么就没弄出来呢-- 这两天CP让我给他写个题解,弄了不是很久就把这个题给弄出来了,真不知道考试的时候在干嘛. 明天就出发去北京了,祝自己APIO顺利吧. 1 /************************************************************** 2 Problem: 3528 3 User: zhuohan123 4 Language: C++ 5 Result: Accepted 6

bzoj 2109 & 2535 航空管制 题解

[] [分析]真的是一道贪心好题.开始我以为是一道大水题.建立拓扑图后(没环就是方便!),直接把最外层设定序号为1,第二层为2,bfs下去即可...结果发现:飞行序号不能相同...于是开始想. 先考虑第一个问题:打印一个合法序列.我开始是这么想的: 观察每个飞机的最晚飞行序号Ki,因为必定有解,所以我们可以让它的序号就是Ki.然后用它的时间去更新前面的时间(图可以反向建立).应该可以维护一个大根堆,每次挑出最大的一个进行处理. [简易代码] memset(T,0x7f,sizeof(T)); f

bzoj 1858: [Scoi2010] 序列操作 题解

[原题] 1858: [Scoi2010]序列操作 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 1031  Solved: 529 [Submit][Status] Description lxhgww最近收到了一个01序列,序列里面包含了n个数,这些数要么是0,要么是1,现在对于这个序列有五种变换操作和询问操作: 0 a b 把[a, b]区间内的所有数全变成0 1 a b 把[a, b]区间内的所有数全变成1 2 a b 把[a,b]区间内

矩阵乘法专题3——bzoj 1898 [Zjoi2004]Swamp 沼泽鳄鱼 题解

[原题] 1898: [Zjoi2004]Swamp 沼泽鳄鱼 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 425  Solved: 256 [Submit][Status] Description 潘塔纳尔沼泽地号称世界上最大的一块湿地,它地位于巴西中部马托格罗索州的南部地区.每当雨季来临,这里碧波荡漾.生机盎然,引来不少游客.为了让游玩更有情趣,人们在池塘的中央建设了几座石墩和石桥,每座石桥连接着两座石墩,且每两座石墩之间至多只有一座石桥.这

矩阵乘法专题4——bzoj 2326 [HNOI2011] 数学作业 题解

转载请注明:http://blog.csdn.net/jiangshibiao/article/details/24963747 [原题] 2326: [HNOI2011]数学作业 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 853  Solved: 473 [Submit][Status] Description [分析]我们按数字的位数来划分.对于K位数,我们就可以专门设计一个矩阵来计算. 然后就是注意细节了. [代码] #include

bzoj 1874 取石子游戏 题解 & SG函数初探

[原题] 1874: [BeiJing2009 WinterCamp]取石子游戏 Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 334  Solved: 122 [Submit][Status] Description 小H和小Z正在玩一个取石子游戏. 取石子游戏的规则是这样的,每个人每次可以从一堆石子中取出若干个石子,每次取石子的个数有限制,谁不能取石子时就会输掉游戏. 小H先进行操作,他想问你他是否有必胜策略,如果有,第一步如何取石子. In

bzoj 2802: [Poi2012]Warehouse Store 题解

[原题] 2802: [Poi2012]Warehouse Store Time Limit: 10 Sec  Memory Limit: 64 MBSec  Special Judge Submit: 94  Solved: 54 Description 有一家专卖一种商品的店,考虑连续的n天. 第i天上午会进货Ai件商品,中午的时候会有顾客需要购买Bi件商品,可以选择满足顾客的要求,或是无视掉他. 如果要满足顾客的需求,就必须要有足够的库存.问最多能够满足多少个顾客的需求. Input 第一