[BJOI2018]求和】的更多相关文章

[BZOJ5293][BJOI2018]求和(前缀和,LCA) 题面 BZOJ 洛谷 题解 送分题??? 预处理一下\(k\)次方的前缀和. 然后求个\(LCA\)就做完了?... #include<iostream> #include<cstdio> using namespace std; #define MOD 998244353 #define MAX 300300 inline int read() { int x=0;bool t=false;char ch=getch…
题目链接 bzoj5293: [Bjoi2018]求和 题解 暴力 对于lca为1的好坑啊.... 代码 #include<cmath> #include<cstdio> #include<algorithm> inline int read() { int x = 0,f = 1; char c = getchar(); while(c < '0' || c > '9')c = getchar(); while(c <= '9' &&…
P4427 [BJOI2018]求和 同[TJOI2018]教科书般的扭曲虚空 懒得写了(雾 #include<bits/stdc++.h> #define il inline #define vd void typedef long long ll; il int gi(){ int x=0,f=1; char ch=getchar(); while(!isdigit(ch)){ if(ch=='-')f=-1; ch=getchar(); } while(isdigit(ch))x=x*1…
Description master 对树上的求和非常感兴趣.他生成了一棵有根树,并且希望多次询问这棵树上一段路径上所有节点深度的k  次方和,而且每次的k 可能是不同的.此处节点深度的定义是这个节点到根的路径上的边数.他把这个问题交给 了pupil,但pupil 并不会这么复杂的操作,你能帮他解决吗?   Input 第一行包含一个正整数n ,表示树的节点数. 之后n-1 行每行两个空格隔开的正整数i,j ,表示树上的一条连接点i 和点j 的边. 之后一行一个正整数m ,表示询问的数量. 之后…
Description master 对树上的求和非常感兴趣.他生成了一棵有根树,并且希望多次询问这棵树上一段路径上所有节点深度的k 次方和,而且每次的k 可能是不同的.此处节点深度的定义是这个节点到根的路径上的边数.他把这个问题交给 了pupil,但pupil 并不会这么复杂的操作,你能帮他解决吗? Input 第一行包含一个正整数n ,表示树的节点数. 之后n-1 行每行两个空格隔开的正整数i,j ,表示树上的一条连接点i 和点j 的边. 之后一行一个正整数m ,表示询问的数量. 之后每行三…
Description master 对树上的求和非常感兴趣.他生成了一棵有根树,并且希望多次询问这棵树上一段路径上所有节点深度的k  次方和,而且每次的k 可能是不同的.此处节点深度的定义是这个节点到根的路径上的边数.他把这个问题交给 了pupil,但pupil 并不会这么复杂的操作,你能帮他解决吗? Input 第一行包含一个正整数n ,表示树的节点数. 之后n-1 行每行两个空格隔开的正整数i,j ,表示树上的一条连接点i 和点j 的边. 之后一行一个正整数m ,表示询问的数量. 之后每行…
Description master 对树上的求和非常感兴趣.他生成了一棵有根树,并且希望多次询问这棵树上一段路径上所有节点深度的\(k\) 次方和,而且每次的\(k\) 可能是不同的.此处节点深度的定义是这个节点到根的路径上的边数.他把这个问题交给了pupil,但pupil 并不会这么复杂的操作,你能帮他解决吗? Input 第一行包含一个正整数\(n\),表示树的节点数. 之后\(n-1\) 行每行两个空格隔开的正整数\(i,j\),表示树上的一条连接点\(i\) 和点\(j\)的边. 之后…
题目描述 master 对树上的求和非常感兴趣.他生成了一棵有根树,并且希望多次询问这棵树上一段路径上所有节点深度的 kkk 次方和,而且每次的 kkk 可能是不同的.此处节点深度的定义是这个节点到根的路径上的边数.他把这个问题交给了pupil,但pupil 并不会这么复杂的操作,你能帮他解决吗? 输入输出格式 输入格式: 第一行包含一个正整数 nnn ,表示树的节点数. 之后 n−1n-1n−1 行每行两个空格隔开的正整数 i,ji, ji,j ,表示树上的一条连接点 iii 和点 jjj 的…
这是一道巨狗题,我已无力吐槽为什么我怎么写都不过 我们对于这种无修改的边权题目有一个经典的树上差分套路: \(ans=sum_x+sum_y-2\cdot sum_{LCA(x,y)}\) 这里的\(sum\)表示的是从根到这个点的边权前缀和 然后这里求的是点权,我们还是用一样的策略,就是树上查分后加上这个点的点权即可,即: \(ans=sum_x+sum_y-2\cdot sum_{LCA(x,y)}+node_{LCA(x,y)}\) 然后我们发现\(1\le k\le 50\),所以我们预…
裸的树上倍增. #include<cstdio> #include<cstring> #include<algorithm> #define rep(i,l,r) for (int i=(l); i<=(r); i++) using namespace std; ,mod=; ]; ],sm[N][],pow[N][]; int h[N],cnt,n,m,x,y,k; void add(int u,int v){ e[++cnt].to=v; e[cnt].nxt…
link 其实可以用$sum(i,j)$表示从$i$到$1$的$k$次方的值,然后就是$lca$的基本操作 注意,能一起干的事情就一起搞,要不会超时 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #define int long long #define mod 998244353 using namespace std; ; inline int read…
\(\Large\textbf{Description: } \large{一颗n个节点的树,m次询问,每次查询点i到点j的路径上所有节点点深度的k次方的和并对998244353取模(1\leq n,m \leq 300000,1\leq k\leq 50).}\\\) \(\Large\textbf{Solution: } \large{一开始看到这道题并没有思路,但是注意到k很小,所以我们可以预处理出每个节点到根节点1的路径上点的1到50次方的和,然后每次O(1)查询即可.\\}\) \(\…
预处理,树上差分.注意深度减一 #include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <cmath> #define R(a,b,c) for(register int a = (b); (a) <= (c); ++(a)) #define nR(a,b,c) for(register int a = (b); (a) &…
6.17考试总结(NOIP模拟8) 背景 考得不咋样,有一个非常遗憾的地方:最后一题少取膜了,\(100pts->40pts\),改了这么多年的错还是头一回看见以下的情景... T1星际旅行 前言 考试的时候用一个自己感觉非常妙的思路骗了20pts,因为是双向边,所以分成两个边存,边的tot从2开始,这样可以保证没一组边的序号通过取\(xor\)可以相互转化. 然后对于每一个边记录经过次数,并且记一下经过次数为1和2的边的总数,然后对于dfs时转移的就是状压的每组边的状态,当然也可以拿Hash存…
突然意识到有一些题目的计划,才可以减少大量查水表或者找题目的时间. 所以我决定这样子处理. 按照这个链接慢慢做. 当然不可能只做省选题了. 需要适时候夹杂一些其他的题目. 比如\(agc/arc/cf\)的题目,以及\(loj\)上的一些省的集训题目,还有\(uoj\)的各种\(round\)的题目. 大块大块的做题记录就在这里记录一下,省选后再来看结果,至少努力过就不曾后悔了不是吗? 首先先是省选题的记录,然后有比赛的记录,做到每周至少完成一整场\(CF\)或者\(AtCoder\)比赛的题解…
2019/10/25 \([LNOI2014]\ LCA\) \([Luogu\ P2774]\) 方格取数问题 \(Gauss\)消元板 \([JSOI2008]\)球形空间产生器 2019/10/26 \([BJOI2018]\)求和 铺地毯 2019/10/28 \([SDOI2006]\)线性方程组 传纸条 方格取数 乌龟棋 愤怒的小鸟 2019/10/29 考试题\(T1,T2\) 2019/10/30 考试题\(T1,T2\) 2019/10/31 换教室 玩具装箱 联合权值 高精度…
1.luogu P4315 月下"毛景树" 题目链接 前言: 这大概是本蒟蒻A掉的题里面码量最大的一道题了.我自认为码风比较紧凑,但还是写了175行. 从下午2点多调到晚上8点.中间小错不断.最后还是借助了郭神的AC代码.. %%%stO郭神Orz%%% 还是我代码能力不够.以后要多写一些这样的题练练手. 解析: 题目相当裸.树链剖分+线段树维护区间最大值. 需要注意的点大致如下: 1.边权化点权 2.线段树需要实现的功能:区间加,区间赋值,区间查询最大值. 看起来貌似有手就行其实对于…
[BZOJ5291][BJOI2018]链上二次求和(线段树) 题面 BZOJ 洛谷 题解 考虑一次询问\([l,r]\)的答案.其中\(S\)表示前缀和 \(\displaystyle \sum_{i=l}^r\sum_{j=i}^n S_{j-i+1,j}=\sum_{i=l}^r\sum_{j=i}^nS_j-S_{j-i}=\sum_{i=l}^r(\sum_{j=i}^nS_j-\sum_{j=0}^{n-i}S_j)\) 转成二维前缀和的形式\(SS_i\),可以写成\(\displ…
「BJOI2018」链上二次求和 https://loj.ac/problem/2512 我说今天上午写博客吧.怕自己写一上午,就决定先写道题. 然后我就调了一上午线段树. 花了2h找到lazy标记没有清空.我tm清空了有没有标记没清空标记本身. 又花25min找到某个乘法爆int了.int真的淡疼,要不是longlong自带巨无霸常数,这辈子都不想用int. 一个上午就没有了. //Achen #include<bits/stdc++.h> #define For(i,a,b) for(in…
「BJOI2018」求和 传送门 观察到 \(k\) 很小而且模数不会变,所以我们直接预处理 \(k\) 取所有值时树上前缀答案,查询的时候差分一下即可. 参考代码: #include <algorithm> #include <cstdio> #define rg register #define file(x) freopen(x".in", "r", stdin), freopen(x".out", "w&…