首页 > TAG信息列表 > CTSC2018

「CTSC2018」暴力写挂

emmm感觉就是通道的弱化版,就是第一步要想到 description 给两棵树,\(T\)和\(T'\),求对于所有\(x\),\(y\),\(depth(x)+depth(y)-(depth(lca(x,y))+depth'(lca'(x,y)))\)的最大值。 solution 两个lca不好处理,考虑把第一个转化为距离。 即:\(\frac{1}{2} *(depth(x)+depth(y)+dist(x,y)

[CTSC2018] 暴力写挂

一、前言 震惊,这道题竟然是我的边分树入门题!感谢永神教我边分树! 前排警告:这是我没借鉴任何题解,自己写的代码,非常丑,如果你是为了看我代码而来的,小心为妙! 做这道题之前我甚至没写过一道边分治。 二、题目 洛谷 LOJ UOJ 三、讲解 在了解边分树之前,我们先需要了解边分治,如果你有点分治

[CTSC2018]暴力写挂

考虑枚举\(T'\)中两点的\(lca\),之后要做的为最大化\(dep_x+dep_y-dep_{lca(x,y)}\),转化一下式子就是\(\frac {dep_x+dep_y+dist_{x,y} }{2}\). 那么我们考虑在边分树的每一个节点维护往左最大的\(dep_x+dist_{a,x}\)和往右最大的\(dep_y+dist_{b,y}\). 考虑因为边分树的树高是\(

洛谷 P4602 [CTSC2018]混合果汁(主席树+二分)

      const int N=1e5+5; int n,m,_; int i,j,k; //int a[N]; struct Node { int l,r; ll sum,p,v; }t[N<<5]; int root[N],tot=0; struct O { int p,l,d; bool operator<(O o){

[CTSC2018]暴力写挂

给定两棵带边权的树\(T,T'\),大小为\(n\),要求\(max{dep[x]+dep[y]-dep[LCA(x,y)]-dep'[LCA'(x,y)]}\)。\(n\leq 366666\)。 首先式子可以化成\((dep[x]+dep[y]+dist(x,y))/2-dep'[LCA'(x,y)]\),出现\(dist\)之后就可以考虑统计路径信息了。这一般就三种做法。 考虑长剖和点分治,发现

P4565 [CTSC2018]暴力写挂 边分治+虚树

题意: 戳这里 分析: 这道题是通道的弱化版,所以没什么好说的直接开始推柿子 我们发现存在两个 \(lca\) 边分治没法直接解决有根树过 \(lca\) 的路径,但是 \(dep(x)+dep(y)-dep(lca(x,y))\) 这个东西可以转化成 \(\frac{1}{2}\times (dep(x)+dep(y)+dis(x,y))\) 而 \(dis(x,y)\) 这种

Luogu4565 [CTSC2018]暴力写挂

边分治 边分治与点分治相似,每次选择断开后得到的两棵子树大小的最大值最小,可以与点分治寻找重心类比。 但是对于一般树来说,它并不一定有一条边具有使断边后最大子树大小呈指数级下降的特质(比如\(n-1\)个点连向\(1\)个点)。 我们可以利用虚点,将一棵树变为二叉树,具体来说,有两种方式。

CTSC2018

混合果汁 Luogu LOJ UOJ BZOJ 把果汁按美味度降序排序,以单价为下标插入主席树,记录每个节点的\(sum\)果汁升数和\(val\)果汁总价。 每次询问二分最小美味度,查询美味度大于等于\(mid\)的总体积为\(L\)的最低总价。 #include<bits/stdc++.h> #define LL long long using namespace st

【LOJ2553】[CTSC2018]暴力写挂(边分树)

题目 LOJ 2553 分析 我是男生,第一次写边分治。 这题好像有两种做法,一种是边分治 + 虚树,另一种是边分树 …… 我只写了第二种,但我把两种做法都介 kou 绍 hu 一番。 两种做法一开始都需要用到边分治,这里先简单介绍一下边分治。 边分治是一种树上分治的方法,常用于处理与树上路径有关

CTSC2018 混合果汁

传送门 题解 先把 \(d\) 二分,然后按价格插入主席树,主席树中维护当前区间水果的重量和与总价值,大概就是这样子. #include<bits/stdc++.h> using namespace std; #define re register #define int long long #define in inline #define get getchar() in int read() { int t=

UOJ399 CTSC2018 假面 期望、DP

传送门 \(Q \leq 200000 , C \leq 1000 , m_i \leq 100\)…… 先考虑如何维护最后一次操作时所有人的血量期望。不难发现我们需要的复杂度是\(O(Qm_i)\)的,所以不难想到一个Easy的DP:设\(f_{i,j}\)表示当前操作结束后第\(i\)个人血量为\(j\)的概率,转移考虑技能是否命中。 然后考虑结

Loj #2554. 「CTSC2018」青蕈领主

Loj #2554. 「CTSC2018」青蕈领主 题目描述 “也许,我的生命也已经如同风中残烛了吧。”小绿如是说。 小绿同学因为微积分这门课,对“连续”这一概念产生了浓厚的兴趣。小绿打算把连续的概念放到由整数构成的序列上,他定义一个长度为 \(m\) 的整数序列是连续的,当且仅当这个序列中的

Loj #2553. 「CTSC2018」暴力写挂

Loj #2553. 「CTSC2018」暴力写挂 题目描述 temporaryDO 是一个很菜的 OIer 。在 4 月,他在省队选拔赛的考场上见到了《林克卡特树》一题,其中 \(k = 0\) 的部分分是求树 \(T\) 上的最长链。可怜的 temporaryDO 并不会做这道题,他在考场上抓猫耳挠猫腮都想不出一点思路。 这时,善良的板

[CTSC2018] 假面

link $solution:$ 考虑暴力 $dp$ 。 设 $f_{i,j}$ 表示第 $i$ 个人还有 $j$ 血量的概率。因为 $血量\leq100$ 所以这个转移不会超时。 最后直接按照这个值算最后期望即可。 而结界技能 $g_{i,j}$ 表示前 $i$ 个人有 $j$ 人存活的概率,则 $g_{i,j}=g_{i-1,j}\times f_{i,0}+g_{i-1,j-

LOJ 2555 「CTSC2018」混合果汁——主席树

题目:https://loj.ac/problem/2555 二分答案,在可以选的果汁中,从价格最小的开始选。 按价格排序,每次可以选的就是一个前缀。对序列建主席树,以价格为角标,维护体积和、体积*价格和。 一开始忘记离散化价格了。 #include<cstdio>#include<cstring>#include<algorithm>#define ll long l

[CTSC2018]暴力写挂——边分树合并

[CTSC2018]暴力写挂  题面不错 给定两棵树,两点“距离”定义为:二者深度相加,减去两棵树上的LCA的深度(深度指到根节点的距离) 求最大的距离。   解决多棵树的问题就是降维了。 经典的做法是边分树合并。 边分树结构类似0/1 trie 就是把边分树对于每个点拆开路径 合并两棵边分树同时可

[边分治+线段树合并]「CTSC2018」暴力写挂

题目梗概 给出两棵1为根的树,求\(d[x]+d[y]-d[lca(x,y)]-d'[lca(x,y)]\)的最大值 解题思路 套路化简之后\((d[x]+d[y]+dis(x,y)-2*d'[lca(x,y)])/2\) 第二棵树上的lca化不掉,所以考虑在第二棵上枚举lca 先说说这题的解法,边分树的合并. 边分和点分有什么区别,边分在合并类似\(d[x]+

[分治FFT]「CTSC2018」青蕈领主

题目梗概 定义一个序列是连续的,当且仅当这个序列的最大值-最小值不超过序列长度-1. 现在有一个长度为\(n\)的排列,给出以每个位置为右端点的最长连续区间的长度,求满足的排列的方案数. 解题思路 如果\(a[n]!=n\)且有区间相交显然无解. 那么我们可以根据区间的包含关系建出一棵以\(

Luogu 4602 [CTSC2018]混合果汁

BZOJ 5343 福利题。 对于每一个询问可以二分$d$,然后把满足条件的果汁按照$p$从小到大排序贪心地取$L$升看看满不满足价格的条件。 那么按照$p$建立权值主席树,$chk$的时候在主席树上走一走算出价格即可。 当然也可以整体二分。 时间复杂度都是$O(nlog^2n)$。 Code: #include <cstdi