首页 > TAG信息列表 > Zjoi2015

luogu P3345 [ZJOI2015]幻想乡战略游戏

题面传送门 本来当成点分树练手题,然后写成动态重心QoT 17了( 首先根据我们分析重心那套\(\frac{n}{2}\)理论我们发现这个东西和边权半毛钱关系没有。 具体的,这道题要求的就是带权重心,而根据普通树重心那套理论,只要一个点的任意子树大小都 \(\leq \frac{n}{2}\)那么这个点就是重心中

P3346 [ZJOI2015]诸神眷顾的幻想乡

传送门 题目大意 一棵 \(n(1\le n\le10^5)\) 个节点的树,每个树上有一个颜色值 \(c_i(1\le c_i\le10)\) 。求树上本质不同的路径数,两条路径本质不同当且仅当路径上形成的颜色序列本质不同,保证度数为 \(1\) 的节点数量 \(<20\) 。 思路 如果只考虑从上到下的路径,那么把这棵树当成一

ZJOI2015 诸神眷顾的幻想乡

给定一棵叶子节点不超过 \(20\) 个的无根树,每个节点上都有一个 \(0\sim 9\) 的数字,求树上本质不同路径条数。两条路径相同是指其路径上所以节点上的数字顺次连结组成的字符串相同。 \(1\le n\le 10^5\)。 如果此题是从根出发的路径,那相当于就是给定了一棵 \(\text{Trie}\) 树,非

「ZJOI2015」幻想乡战略游戏

原题面:Loj、Luogu。 结论,点分树 傲娇少女幽香与赤色杀人魔私密合影流出 简述 给定一棵 \(n\) 个节点的树,点有点权,边有边权,初始时各点点权为 \(0\)。定义树上一点 \(u\) 作为决策点的代价为: \[\sum_{v\in T}\operatorname{dis}(u,v)\times\operatorname{val}_v \]其中 \(\opera

并不对劲的bzoj3924:loj2135:p3345:[ZJOI2015]幻想乡战略游戏

题目大意 有一棵有\(n\)(\(n\leq10^5\))个点的树,有点权\(d_i\)、边权\(c_i\),有\(m\)(\(m\leq10^5\))次操作。 每次操作给定\(x,y(y\in[-1000,1000])\),将点\(x\)的点权+y,要找到一个点,使所有点的 点权乘到这个点的距离 之和最小,输出最小的和。 题解 这题相当于求带权重心。设点\(x\)

【ZJOI2015】幻想乡战略游戏【点分树】【带权重心】

题意:nnn个点带边权的树,动态修改点权viv_ivi​,最小化 钦定一个点xxx 后 ∑idist(x,i)∗vi\sum\limits_{i} dist(x,i)*v_ii∑​dist(x,i)∗vi​的值。 n,q≤105n,q \leq10^5n,q≤105,度数不超过202020 限制度数的树上的一些诡异的操作,时限很长,多半是点分树。 也叫动态点分治,但

[ZJOI2015]幻想乡战略游戏 - 动态点分治

先考虑无修要怎么操作。 发现在无修的情况下,我们可以用一个换根\(dp\)解决。 那么带修改的情况要怎么办呢? 每次修改重新\(dp\)一遍不就行了(雾。 好的,让我们先来敲一个\(O(N^2)\)的\(dp\)。 #include <bits/stdc++.h> using namespace std; typedef long long ll; inline ll ty()

[ZJOI2015]幻想乡战略游戏 动态点分治

恶补了动态点分治。。 #pragma GCC optimize(2)#pragma GCC optimize(3)#include<bits/stdc++.h>#define LL long long#define LD long double#define ull unsigned long long#define fi first#define se second#define mk make_pair#define PLL pair<LL, LL>#define PLI p

[ZJOI2015]幻想乡战略游戏

https://www.luogu.org/problemnew/show/P3345 动态点分治 考虑到带权重心一定在当前点到距离与权重总和更小的方向上(没有则当前点为重心),并且这个方向是唯一的,因此可以每次修改都这样移动,把重心找出。 然而直接移动就是直接暴力,需要更优雅的做法。 考虑在子树中移动,可以使用动态点

ZJOI2015 幻想乡战略游戏 动态点分治_树链剖分_未调完

最近写动态点分治快自闭了QAQ....... 有时间再来写一下题解.  其实我不会告诉你我还没调出来呢QAQ Code:   // luogu-judger-enable-o2// luogu-judger-enable-o2#include <bits/stdc++.h>#define setIO(s) freopen(s".in","r",stdin) // ,freopen(s".out","w",stdo

BZOJ3926 [Zjoi2015]诸神眷顾的幻想乡

诸神眷顾的幻想乡 Problem 3926. -- [Zjoi2015]诸神眷顾的幻想乡3926: [Zjoi2015]诸神眷顾的幻想乡Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 2415  Solved: 1417[Submit][Status][Discuss]Description 幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽香的2600岁生日,无

loj 2135 「ZJOI2015」幻想乡战略游戏 - 动态点分治

题目传送门   传送门 题目大意   给定一棵树,初始点权都为0,要求支持: 修改点权 询问带权重心   询问带权重心就在点分树上跑一下就行了。(枚举跳哪个子树更优)   剩下都是基础点分治。   学了一下11-dimensional的2.2k动态点分治,然后写抄出来只有1.9k??? Code /** * loj *

「ZJOI2015」地震后的幻想乡

传送门 Description 题目的理解方式: 给定\(n\)个点,和\(m\)条边,每条边的期望完成时间都是一个\([0,1]\)内的随机数 求使得所有点都联通的期望时间 \(n \leq 10\) Solution 首先,对于\(n\)个\([0,1]\)之间的随机变量\(x_1,x_2,x_3,...,x_n\),第\(k\)小的那个数的期望值是\(\fra

[ZJOI2015]地震后的幻想乡

题目看完之后就知道不会做。 然后题目的提示十分重要:对于 n 个 [0,1] 之间的随机变量 x1,x2,...,xn,第k小的那个的期望值是 k/(n+1)。 假设我们知道 \(m\) 条边的权值,我们做一遍克鲁斯卡尔最小生成树。答案就是最小生成树中的边权最大值。也就是加入后恰好使图联通的边权。 根据题目

[ZJOI2015]诸神眷顾的幻想乡 广义后缀自动机_DFS_语文题

才知道题目中是只有20个叶子节点的意思QAQ.... 这次的广义后缀自动机只是将 last 设为 1, 并重新插入. 相比于正统的写法,比较浪费空间. Code: #include <cstdio> #include <algorithm> #include <cstring> #include <vector> #define setIO(s) freopen(s".in","r",stdin) #define