poi word转html 根号,#根号分治,树上倍增#洛谷 3591 [POI2015]ODW
分析
考虑直接用倍增跳会TLE,设\(f[x][i]\)表示以\(x\)为起点每次跳\(i\)步的点权和,
这可以预处理出来,综合一下两种做法,当\(i>\sqrt{n}\)时直接上倍增,否则预处理\(f\)即可
如果用长链剖分求树上\(k\)级祖先那么就可以去掉\(\log\)
代码
#include
#include
#define rr register
using namespace std;
const int N=50011,M=224;
typedef long long lll; lll g[N][M];
struct node{int y,next;}e[N<<1];
int f[N][16],n,LCA[N],a[N],b[N],p[N],as[N],et=1,F[M],dep[N];
inline signed iut(){
rr int ans=0,f=1; rr char c=getchar();
while (!isdigit(c)) f=(c=='-')?-f:f,c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans*f;
}
inline void print(lll ans){
if (ans>9) print(ans/10);
putchar(ans%10+48);
}
inline void dfs(int x,int fa){
f[x][0]=fa,F[0]=x,dep[x]=dep[fa]+1;
for (rr int i=1;i<16&&f[x][i-1];++i)
f[x][i]=f[f[x][i-1]][i-1];
for (rr int i=1;i
for (rr int i=1;i
for (rr int i=as[x];i;i=e[i].next)
if (e[i].y!=fa) dfs(e[i].y,x);
}
inline signed lca(int x,int y){
if (dep[x]
for (rr int i=15;~i;--i)
if (dep[f[x][i]]>=dep[y]) x=f[x][i];
if (x==y) return x;
for (rr int i=15;~i;--i)
if (f[x][i]!=f[y][i])
x=f[x][i],y=f[y][i];
return f[x][0];
}
inline signed Get(int x,int y){
for (rr int i=15;~i;--i)
if ((y>>i)&1) x=f[x][i];
return x;
}
inline lll answ(int x,int LCA,int y,int P){
rr lll ans=0;
if (P>=M){
ans+=a[x];
for (;dep[x]-P>=dep[LCA];)
ans+=a[x=Get(x,P)];
rr int now=dep[x]-dep[LCA];
if (now&&P-now>dep[y]-dep[LCA]) ans+=a[y];
else{
x=Get(y,dep[y]-dep[LCA]-P*(now>0)+now);
if (x!=LCA) ans+=a[x];
for (;dep[x]+P<=dep[y];)
x=Get(y,dep[y]-dep[x]-P),ans+=a[x];
if (x!=y) ans+=a[y];
}
}else{
rr int step=(dep[x]-dep[LCA])/P;
ans+=g[x][P]-g[Get(x,(step+1)*P)][P];
rr int now=dep[x]-dep[LCA]-P*step;
if (now&&P-now>dep[y]-dep[LCA]) ans+=a[y];
else{
x=Get(y,dep[y]-dep[LCA]-P*(y!=LCA)+now);
step=(dep[y]-dep[x])/P;
rr int t=Get(y,dep[y]-dep[x]-step*P);
if (t!=LCA) ans+=g[t][P]-g[Get(x,P)][P];
if (t!=y) ans+=a[y];
}
}
return ans;
}
signed main(){
n=iut();
for (rr int i=1;i<=n;++i) a[i]=iut();
for (rr int i=1;i
rr int x=iut(),y=iut();
e[++et]=(node){y,as[x]},as[x]=et;
e[++et]=(node){x,as[y]},as[y]=et;
}
dfs(1,0);
for (rr int i=1;i<=n;++i) b[i]=iut();
for (rr int i=1;i
for (rr int i=1;i
return 0;
}
poi word转html 根号,#根号分治,树上倍增#洛谷 3591 [POI2015]ODW相关推荐
- 分治——南蛮图腾(洛谷 P1498)
题目选自洛谷P1498 把杨辉三角对2取模输出看下结果,这是12行内的结果: 11 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 ...
- 洛谷 P3258 [JLOI2014]松鼠的新家 树上差分
缘起 [1]中我们学习了树上差分,并且a了一个裸的点差分. 现在继续树上差分~ 洛谷 P3258 [JLOI2014]松鼠的新家 分析 题目描述 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房 ...
- POI Word 模板 文字 图片 替换
POI Word 模板 文字 图片 替换 博客分类: java poi POIjavaWOrd 实验环境:POI3.7+Word2007 Word模板: 替换后效果: 代码: 1.入口文件 Java ...
- java poi 段落行间距,Apache POI Word - 段落( Paragraph)
Apache POI Word - 段落( Paragraph) 在本章中,您将学习如何创建段落以及如何使用Java将其添加到文档中. 段落是Word文件中页面的一部分. 完成本章后,您将能够创建段落 ...
- Java Poi word 插入图片并添加边框
Java Poi word 插入图片并添加边框 //得到Picture的Base64编码 Base64Picture p1; //打开Word文件 Resource resource = new Cl ...
- java poi word导出
java poi word导出 (含有文字,图像) 导出word效果如下: 思路:建立预期导出word效果,设置为模板,然后填充对应信息,注意,加粗,居中等一些图片,文字格式预先设置好.然后进行文字或 ...
- poi word操作之XWPFTable合并单元格
poi word操作之XWPFTable合并单元格 需要注意,要合并的单元格最好不要有其他的合并样式. 跨列合并单元格 /** * @Description: 跨列合并 * table要合并单元格的表 ...
- poi word操作之向单元格内添加图片
poi word操作之向单元格内添加图片 1,主要难点: poi word操作之向单元格内添加图片考虑的点: 1)考虑图片在单元格内的占比(动态的调整图片在文档中的宽高) 2,解决步骤 1)首先需要获 ...
- POI Word 图表、柱状图、条形图、折线图、饼图
poi Excel 图表:https://blog.csdn.net/u014644574/article/details/105695787 1.pom.xml <dependency> ...
最新文章
- 学习Mybatis与mysql数据库的示例笔记
- Android内核开发:系统编译输出的镜像文件
- css圆角矩形及去掉空格属性
- MySQL 中的重做日志,回滚日志以及二进制日志的简单总结
- neo4j cypher_neo4j / cypher:悬挂查询参数
- python selenium循环判断元素是否存在_检查Python Selenium是否存在元素
- 根据 HTML 规范,以下代码中,外层容器 .outer 的宽高分别是:
- Javascript取select的选中值和文本
- python中的json结构_python数据挖掘_Json结构分析
- 傲云浏览器linux,Centos7安装部署zabbix监控软件
- 谷歌提出深度CNN模型NIMA:帮你挑选清晰且有美感的图片
- 【蜕变之路】第31天 Spring Tool Suite和IntelliJ (2019年3月21日)
- linux账户管理代码和截图,linux 用户管理(示例代码)
- 计算机坐标公式,经纬度换算坐标公式(经纬度转大地坐标公式)
- 阿里云弹性云桌面解决方案、高性能GPU型云桌面用于设计、建模、影视制作
- Windows搭建邮件服务器,实现收发邮件(对第三方邮箱,例如QQ邮箱等)
- Python爬取Google图片(2021.11.21编写)
- 基于Dragonboard 410c设计的智能管家
- knn matting matlab,一键抠图,毛发毕现:这个GitHub项目助你快速PS
- java后台将数据导出到Excel表格