luogu P5002 专心OI - 找祖先】的更多相关文章

题目描述 这个游戏会给出你一棵树,这棵树有NN个节点,根结点是RR,系统会选中MM个点P_1,P_2...P_MP 1 ​ ,P 2 ​ ...P M ​ ,要Imakf回答有多少组点对(u_i,v_i)(u i ​ ,v i ​ )的最近公共祖先是P_iP i ​ .Imakf是个小蒟蒻,他就算学了LCA也做不出,于是只好求助您了. Imakf毕竟学过一点OI,所以他允许您把答案模 (10^9+7)(10 9 +7) 输入格式 第一行 N , R , MN,R,M 此后N-1N−1行 每行两个…
P5002 专心OI - 找祖先 给定一棵有根树(\(n \leq 10000\)),\(M \leq 50000\) 次询问, 求以 \(x\) 为 \(LCA\) 的点对个数 错误日志: 看下面 Solution 设点 \(u\) 的子树大小为 \(size[u]\) 现询问以 \(u\) 为 \(LCA\) 的点对个数 设 \(u\) 的子节点为 \(v_{1}, v_{2},...,v_{m}\) 我们现在统计点对中一个点在 \(v_{1}\) 内的答案数 一个点在 \(v_{1}\)…
题目概括 题目描述 这个游戏会给出你一棵树,这棵树有\(N\)个节点,根结点是\(R\),系统会选中\(M\)个点\(P_1,P_2...P_M\). 要Imakf回答有多少组点对\((u_i,v_i)\)的最近公共祖先是\(P_i\). Imakf是个小蒟蒻,他就算学了LCA也做不出,于是只好求助您了. Imakf毕竟学过一点OI,所以他允许您把答案模 \((10^9+7)\) 输入输出格式 输入格式 第一行 \(N , R , M\) 此后\(N-1\)行 每行两个数\(a,b\) 表示\(…
专心OI - 找祖先 题目背景 \(Imakf\)是一个小蒟蒻,他最近刚学了\(LCA\),他在手机\(APP\)里看到一个游戏也叫做\(LCA\)就下载了下来. 题目描述 这个游戏会给出你一棵树,这棵树有\(N\)个节点,根结点是\(R\),系统会选中\(M\)个点\(P_1,P_2...P_M\),要\(Imakf\)回答有多少组点对\((u_i,v_i)\)的最近公共祖先是\(P_i\).\(Imakf\)是个小蒟蒻,他就算学了\(LCA\)也做不出,于是只好求助您了. \(Imakf\)…
[传送门] 我们还是先将一下算法的步骤,待会再解释起来方便一点. 算法步骤 首先我们算出每个子树的\(size\). 我们就设当前访问的节点 然后我们就得到了当前这个节点的答案是这个树整个的\(size\)的两倍\(-1\),再加上两两子树的\(size\)的积. 也就是$ans=size[u] \times 2 - 1 +\sum size[i] * size[j] $ 其中\(i\)和\(j\)是u的儿子. 一下就是核心代码: register LL ans = sz[p] * 2 - 1;…
题目链接 https://www.luogu.org/problem/P5004 洛谷 P5004 专心OI - 跳房子 Imakf有一天参加了PINO 2017 PJ组,他突然看见最后一道题 他十分蒟蒻,写不出来 而如今他还是一个蒟蒻,他又看见一道题 他还是写不出来,于是便来请教您 题目描述 您有NN个格子,排成一行,从左往右编号为1,2,...,N1,2,...,N.您站在11号格子的左边,开始从左往右跳,跳到NN号格子右侧为止.由于您是一位成功的OIerOIer,您自然长得很胖,但您的力量…
传送门:https://www.luogu.org/problemnew/show/P5004 分析 动态规划转移方程是这样的\(f[i]=\sum^{i-m-1}_{j=0}f[j]\). 那么很明显的是要构造举证,而且要维护前缀和,所以需要保留\(m+1\)项. ac代码 #include <bits/stdc++.h> #define ll long long #define ms(a, b) memset(a, b, sizeof(a)) #define inf 0x3f3f3f3f…
题目描述 Farmer John is at the market to purchase supplies for his farm. He has in his pocket K coins (1 <= K <= 16), each with value in the range 1..100,000,000. FJ would like to make a sequence of N purchases (1 <= N <= 100,000), where the ith p…
题目传送门 可能是我退役/NOIP前做的最后一道状压... 题目大意:给你\(k\)个硬币,FJ想按顺序买\(n\)个物品,但是不能找零,问你最后最多剩下多少钱. 注意到\(k<=16\),提示状压.开始设计的状态是\(f[i]\)表示在状态\(i\)下最多剩的钱数,后来发现不好搞因为可能有无解的情况.这种情况我们不妨把状态设计的再"退化"一点,也就是不那么贴近最终的结果,只是一个中间的部分.设\(f[i]\)为在状态\(i\)下,最多能购买的物品数. 因为是按顺序购买的,所以有…
Box Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2374    Accepted Submission(s): 718 Problem Description There are N boxes on the ground, which are labeled by numbers from 1 to N. The boxes…