上一页 1 ··· 34 35 36 37 38
摘要: 终于补完NOI2012了好开心~题目大意:给定一棵树或者环套外向树,求出从中随机选一条简单路径的期望长度,环上点数不超过20。设d[x]表示x的度数,ch[x]表示x孩子个数up[x]表示x向上走的期望长度,down[x]表示x向下走的期望长度f[x]表示x的父亲树的情况:环套外向树的情况:先找出环... 阅读全文
posted @ 2014-05-13 11:01 Claris 阅读(677) 评论(0) 推荐(0) 编辑
摘要: Top Tree模板题,写起来真不是一般的蛋疼,调了两天。常数写渣了TATTop Tree就是在LCT的基础上加以改动,将虚边也用splay维护,对于A向儿子所连出去的虚边,用Splay维护↓为了保证所有虚儿子不存在父子关系,需要让它们都是叶子节点,所以需要引入白色的内部点来维持这个结构。就能支持子... 阅读全文
posted @ 2014-05-12 18:53 Claris 阅读(3528) 评论(1) 推荐(3) 编辑
摘要: 考虑两个质量均为m,速度分别v1、v2的小球发生完全弹性碰撞的影响:由动能守恒得:$\frac{1}{2}mv_1^2+\frac{1}{2}mv_2^2=\frac{1}{2}mv_1'^2+\frac{1}{2}mv_2'^2$$v_1^2+v_2^2=v_1'^2+v_2'^2$由动量守恒得:... 阅读全文
posted @ 2014-05-10 08:46 Claris 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 想法题,由于K是加密的,但是通过读入我们可以自己数出来这一行有几个数,所以可以直接反解出之前回答为连通的个数至于最后一个询问就用并查集暴力回答var n,i,m,s,k,j,q : longint; u,v,cnt,f : array[0..500000] of longint; c : ar... 阅读全文
posted @ 2014-05-10 07:12 Claris 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 以边编号为权值用Link-cut Tree维护最大生成树对于新加的第i条边(u,v)a[i]表示当a[i]这条边加入后连通块个数会减少若u==v则a[i]=m若u与v不连通则连上,a[i]=0若u与v连通则a[i]为u,v路径上最小值,将那条边断开,连上这条边查询[l,r]等价于查询[l,r]里有多... 阅读全文
posted @ 2014-05-09 20:08 Claris 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 选个根把无根树转化成有根树,设f[i]表示i不通电的概率则答案为对于枚举树根root进行DP后1-f[root]的和直接算是O(n^2)的,但是n有500000,所以不能过。对于这样一棵以1为根的树,求出它的欧拉遍历序为1->2->5->2->6->2->1->3->7->3->8->3->1->4... 阅读全文
posted @ 2014-05-09 15:34 Claris 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 先把所有点绕原点逆时针旋转(360-a)度,再把所有点横坐标除以放大倍数p,最后用随机增量法求最小圆覆盖即可。时间复杂度期望$O(n)$#include#include#includeusing namespace std;struct P{double x,y;}a[50005],o;inline... 阅读全文
posted @ 2014-05-08 20:38 Claris 阅读(297) 评论(0) 推荐(0) 编辑
摘要: A类数据:$n,q\leq1000$修改:$O(1)$直接改查询:$O(n)$BFSB类数据:$n,q\leq100000$,保证是一条链用线段树维护区间最大前缀、后缀和修改:$O(\log n)$查询:答案为max([1,x]的最大后缀和,[x,n]的最大前缀和),$O(\log n)$C类数据:... 阅读全文
posted @ 2014-05-08 17:45 Claris 阅读(752) 评论(0) 推荐(0) 编辑
摘要: 设val[i]为i连出去的树突中输出值为0的个数如果val[x]#define N 500010int f[N*3],son[N][2],size[N],val[N],cnt1[N],cnt2[N],tag[N],a[N];inline void read(int&a){char c;while(!... 阅读全文
posted @ 2014-05-08 17:37 Claris 阅读(617) 评论(0) 推荐(0) 编辑
摘要: 这回是真·强制在线了,首先这道题就是AHOI2013连通图的加强版,那道题k最大只有4那道题的做法是:取一个生成树,对每条非树边取一个随机权值,对每条树边设为“覆盖它的所有非树边”的权值的xor,对于每次询问,只要某个子集的所有边xor值是0,那么就不连通,否则连通。通过$O(2^k)$枚举每一个子... 阅读全文
posted @ 2014-05-08 13:25 Claris 阅读(1363) 评论(0) 推荐(0) 编辑
摘要: 可以发现,从头到尾有一堆点是始终连在一起的,所以把没被删掉的一开始就有的边都加上后求出每个联通块,缩完点后我们发现,边数也减少得差不多了,剩下的就直接暴力。#include#define N 5010#define M 200010#define Q 10010inline void read(in... 阅读全文
posted @ 2014-05-08 12:07 Claris 阅读(560) 评论(0) 推荐(0) 编辑
摘要: 考试的时候看少了一行,导致暴力都写错额…贾教说他出的这题水,但是我觉得并不水,那个结论还是很神的。首先M(i)就是i的最小生成树的最大边,设f[i]表示i属于哪个集合我们把边按权值从小到大排序,对于一条边(u,v),权值为w,如果w#include#define N 100010using name... 阅读全文
posted @ 2014-05-08 08:25 Claris 阅读(627) 评论(0) 推荐(0) 编辑
摘要: 首先强制在线的话,肯定是不能再离线排序+平衡树启发式合并了。这回要用的是线段树合并,每次把两棵线段树合并,总复杂度为$O(n\log n)$预处理:把边按权值从小到大排序,依次加边,对于边(x,y),权值为z,如果x和y已经在一个联通块里就无视掉假设x块大小小于等于y块大小将x,y两块的线段树合并,... 阅读全文
posted @ 2014-05-06 17:57 Claris 阅读(895) 评论(0) 推荐(2) 编辑
摘要: 询问是要求$\sum_{i=1}^n((x[i]-a)^2+(y[i]-b)^2)(x[i]=a||y[i]=b)$即求$\sum_{i=1}^n(x[i]-a)^2(y[i]=b)+\sum_{i=1}^n(y[i]-b)^2(x[i]=a)$拆开得$\sum_{i=1}^n(x[i]^2-2ax... 阅读全文
posted @ 2014-04-18 13:03 Claris 阅读(1412) 评论(0) 推荐(0) 编辑
上一页 1 ··· 34 35 36 37 38