题目大意:给定n维空间下的n+1个点,求这n个点所在的球面的球心
曾经尝试了很久的模拟退火0.0 至今仍未AC 0.0
今天挖粪涂墙怒学了高斯消元……
我们设球心为X(x1,x2,...,xn)
假设有两点A(a1,a2,...,an)和B(b1,b2,...,bn)
那么我们可以得到两个方程
(x1-a1)^2+(x2-a2)^2+...+(xn-an)^2=r^2
(x1-b1)...
分类:
Web程序 时间:
2014-10-17 23:26:01
阅读次数:
244
题意:给定一张n
思路:首先我们将不同的权值从小到大分开考虑。
我们证明以下定理:一个无向图所有的最小生成树中某种权值的边的数目均相同。
开始时,每个点单独构成一个集合。
首先只考虑权值最小的边,将它们全部添加进图中,并去掉环,由于是全部尝试添加,那么只要是用这种权值的边能够连通的点,最终就一定能在一个集合中。
那么不管添加的是哪些边,最终形成的集合数都是一定的,且集合的...
分类:
Web程序 时间:
2014-10-17 11:59:13
阅读次数:
341
http://www.lydsy.com/JudgeOnline/problem.php?id=1013只要列出方程组就能套高斯来解了。显然距离相等,所以开不开平方都无所谓。b表示圆心,可列sigma((x[i][j]-b[j])^2)=sigma((x[i+1][j]-b[j])^2)化简得sig...
分类:
Web程序 时间:
2014-10-16 10:16:52
阅读次数:
426
题目大意:给定一个无向图,求联通块个数,以及k次每次摧毁一个点后的;联通块个数
将边和摧毁的点全记录下来,反着做即可。
注意被摧毁的点不能算作联通块
#include
#include
#include
#include
#define M 400400
using namespace std;
struct abcd{
int to,next;
}table[M];
int head[M...
分类:
Web程序 时间:
2014-10-14 11:21:28
阅读次数:
236
不用Matrix-tree定理什么的,一边kruscal一边 对权值相同的边 暴搜即可。将所有方案乘起来。 1 #include 2 #include 3 using namespace std; 4 int n,m; 5 struct Disjoint_Set 6 { 7 int fa[1...
分类:
Web程序 时间:
2014-10-11 16:55:06
阅读次数:
232
orz,感觉对最小生成树的理解又加进了一步。ps:不得不说对于经典算法的探究是永无止境的,只能通过交流和增长见识来学习和体会,自己研究确实困难。让我们来深入分析一下kruskal算法。算法过程不多说,直接证明:假设算法考虑到第k条边,这时发现边的两端已经在同一个连通块里面了(称为“冲突”),为了使这...
分类:
Web程序 时间:
2014-10-07 17:41:53
阅读次数:
151
题目可以表述成:给定一个无向图G,每次删除它的一个点和与点相关的边集,每次询问该操作后图G的连通度(连通分量的个数)。和上一题一样都是考察逆向思维,虽然删除点的做法不会,但是每次加点后询问连通度却是并查集的经典用法,所以答案可以逆过来推,具体做的时候每次加入一个点,将所有和这个点有边相连的点集合并,...
分类:
Web程序 时间:
2014-10-05 16:01:18
阅读次数:
263
水题,每次记录一下当前有多少个数,然后按照题目所指示的那样模拟就行,每次向线段树末尾插入(其实是修改)题目中指定的数,然后询问当前的个数到前面Q个数中最大值是多少结果就是,好久不碰线段树了,用数组模拟线段树时数组要开大4倍,一开始没发现这点贡献了好多runtime_error TAT#include...
分类:
Web程序 时间:
2014-10-05 15:46:28
阅读次数:
265
题目大意:给定一个字符串,提供下列操作:
1.查询从x开始的后缀和从y开始的后缀的最长公共前缀长度
2.将x位置的字符修改为y
3.在x位置的字符后面插入字符y
看到这题一开始我先懵住了。。。这啥。。我第一时间想到的是后缀数据结构 但是不会写 而且后缀数据结构也不支持修改操作
后来无奈找了题解才知道是Hash+二分。。。 太强大了 Hash+二分打爆一切啊
用Splay维护这个字符串的...
分类:
Web程序 时间:
2014-10-03 14:22:14
阅读次数:
961
BZOJ1014,SPLAY区间查询,点修改,点插入,以及二分+hash进行check操作求解。...
分类:
Web程序 时间:
2014-10-03 12:27:14
阅读次数:
356