关闭
当前搜索:

[agc006c]Rabbit Exercise

前言一开始看成随机跳一个兔子让我感觉不可思议,于是很难。 如果理解对题意,相信这题不难做。题意n只兔子在数轴上。 有m种操作,每种操作找到一个编号的兔子,再随机选择一个编号和其相邻的兔子,然后让该兔子的位置改为与这只相邻编号兔子的对称位置。 问最后每个编号兔子位置的期望值。做法很容易发现可以用每次操作兔子的期望位置直接代替原位置,因此每次相当于xi=xi+1+xi−1−xix_i=x_{i+1...
阅读(140) 评论(0)

[美团 CodeM 复赛]城市网络

题目描述有一个树状的城市网络(即 nnn 个城市由 n−1n-1n−1 条道路连接的连通图),首都为 111 号城市,每个城市售卖价值为 aia_ia​i​​ 的珠宝。你是一个珠宝商,现在安排有 qqq 次行程,每次行程为从 uuu 号城市前往 vvv 号城市(走最短路径),保证 vvv 在 uuu 前往首都的最短路径上。在每次行程开始时,你手上有价值为 ccc 的珠宝(每次行程可能不同),并且每经...
阅读(277) 评论(0)

[51nod1743]雪之国度

题目大意对于一个无向图,边有边权。对于每组询问u、v,如果可以找到两条从u到v不相交的路径,输出路径上边权最大值的最小值。维护边双我们考虑到,如果按照边权从小到大加边,第一次使得u和v处在同一个边双联通分量时我就求得了答案。 考虑一个很强的方法,用LCT或启发式合并维护森林,动态维护双连通分量。 因为不可能去持久化+二分求询问,我们可以再思考,每次将两个边双合并意味着一次集合合并,我们建一个新点...
阅读(274) 评论(0)

[51nod1709]复杂度分析

题目描述给出一棵n个点的树(以1号点为根),定义dep[i]为点i到根路径上点的个数。众所周知,树上最近公共祖先问题可以用倍增算法解决。现在我们需要算出这个算法精确的复杂度。我们定义计算点i和点j最近公共组先的精确复杂度为bit[dep[i]-dep[lca(i,j)]]+bitdep[j]-dep[lca(i,j)]。为了计算平均所需的复杂度为多少,请你帮忙计算任意两点计算最近公共组先所需复杂度的...
阅读(272) 评论(0)

排队

题目描述做法我们先处理出fix表示在全空情况下不断进人,i这个房间被第几个人最终停留。 用一个堆保留空房间当前fix的最小值,每次进一个人就是选择堆中最小值的房间。 拿走人的话观察一下就是从这个房间往上有人房间的数量-1,这个可以倍增来求,因为这个房间到根路径上有人和没人一定是分离开的。 分析一下势能这样做是n log n的。#include #include<algorith...
阅读(188) 评论(0)

富爷说是一颗树

题目描述富爷说来一棵树,于是大头栽了一棵树。树大了,有n个点和n - 1条边,任意两个点都是联通的,点的标号为1 - n。爱树的大头和富爷在树上安居乐业,但大头住在u,而富爷住在v,他们都很不高兴,因为u到v有且只有一条简单路径。 当然了,树王富爷找到了解决办法,他打算带着大头再给树建一条边(保证不是自环),而且他们会在n * (n - 1) / 2的方案中随机选择一种。 但,要让富爷和大头开心...
阅读(217) 评论(0)

Map

题目大意对于一副图,若干询问每次询问加入一条边后原图增加多少安全点对,安全点对定义为两个点之间存在两条不经过相同边的路径。裸题缩点后,每个连通分量点权为包含点数量。 若加入边为(j,k),j在点x内,k在点y内。答案为x到y树路径上点权和平方减点权平方和,倍增维护一下。#include #include #include #define fo(i...
阅读(197) 评论(0)

[bzoj十连测第五场 B]可持久化字符串

题目大意一个S的循环节T表示为可以找到一个正整数k使得S是TkT^k的前缀。 一次操作会在字符串尾部添加一个字符,并且你需要在每次操作后输出最小循环节长度。 要求可持久化与在线。只跳log步我们知道结论,答案就是i-f[i]。 如何可持久化KMP? 我们考虑一种做法让一次更新MP只需要跳KMP步。 具体的,如果目前在j,我们看f[j]+1是否与i匹配。 如果匹配,那么f[i]=f[j]+...
阅读(453) 评论(0)

[bzoj十连测第三场 B]线段树

题目大意有一个长度为n的序列与m个修改操作,每个修改操作是将序列[l,r]的元素都修改为这个区间的最大值。 现有q个操作,要么是修改序列的一个元素,要么是询问执行[l,r]的修改操作后,第k个元素是多少。询问之间独立,而修改会造成影响。搞一搞我们容易发现,每一个位置都可以被表示成一段区间的最大值。 我们枚举右端点r来离线做,把所有询问操作挂在其对应右端点上。 例如位置k,找到当前操作前最后一个...
阅读(274) 评论(0)

[UER #1C]Dzy Loves Graph

题目大意有n个结点,初始没有边。m个操作,操作类型有三: 1、a与b之间连一条长度为i的边(i为操作编号) 2、删除比边权最大的k条边。 3、撤销刚刚执行的操作,保证撤销的不是撤销操作。 每次操作后输出最小生成树所有边权和。可持久化并查集有许多版本,于是我们发现版本之间形成树的结构,为什么? 加入的边越来越大,因此删除操作相当于跳到k级祖先,每次添加操作就在下面加一个儿子,所以是树的结构。...
阅读(357) 评论(0)

贸易

题目大意一共有m个结点,每个结点有一个权值a[i]。初始n个结点练成一颗树,有若干操作每次操作要么把一个结点加入树中要么询问u到v的路径上,a[x]-a[y]的最大值(u到v存在方向,先经过y再经过x)。 m<=10^5倍增倍增维护最小值、最大值、正着走的答案和反着走的答案,为了实现方便可以定义个类型存储然后打一个merge函数。merge中通过两条路径的信息得到合并后路径的信息,最小值和最大值容...
阅读(270) 评论(0)
    个人资料
    • 访问:296722次
    • 积分:11191
    • 等级:
    • 排名:第1484名
    • 原创:805篇
    • 转载:4篇
    • 译文:0篇
    • 评论:197条
    最新评论
    文章分类