题目

解析

\(Code\)

#include<cstdio>
#include<map>
#include<iostream>
#include<cstring>
using namespace std;
typedef unsigned long long LL;
const int N = 70;
const LL P = 1e9 + 7; map<pair<LL , pair<LL , LL> > , LL> vis_to;
map<pair<LL , LL> , LL> vis_all; struct node{
LL a , b , c , d , l , sz , f;
}q[N]; inline LL get(LL x , LL u , LL v)
{
if (q[x].sz == 1 || u == v) return 0;
if (vis_to[make_pair(x , make_pair(u , v))]) return vis_to[make_pair(x , make_pair(u , v))];
LL res = 0 , a = q[x].a , b = q[x].b , c = q[x].c , d = q[x].d , l = q[x].l , sz = q[a].sz;
if (u > v) swap(u , v);
if (v <= sz) res = get(a , u , v);
else if (u > sz) res = get(b , u - sz , v - sz);
else res = (get(a , u , c) + l + get(b , v - sz , d)) % P;
vis_to[make_pair(x , make_pair(u , v))] = res;
return res;
} inline LL all(LL x , LL u)
{
if (q[x].sz == 1) return 0;
if (vis_all[make_pair(x , u)]) return vis_all[make_pair(x , u)];
LL res = 0 , a = q[x].a , b = q[x].b , c = q[x].c , d = q[x].d , l = q[x].l , sz = q[a].sz;
if (u <= sz) res = ((all(a , u) + all(b , d)) % P + q[b].sz % P * ((l + get(a , u , c)) % P) % P) % P;
else res = ((all(b , u - sz) + all(a , c)) % P + q[a].sz % P * ((l + get(b , u - sz , d)) % P) % P) % P;
vis_all[make_pair(x , u)] = res;
return res;
} int main()
{
int T;
scanf("%d" , &T);
for(; T; T--)
{
vis_to.clear() , vis_all.clear();
int n;
scanf("%d" , &n);
memset(q , 0 , sizeof q);
q[0] = node{0 , 0 , 0 , 0 , 0 , 1};
LL a , b , c , d , l;
for(register int i = 1; i <= n; i++)
{
scanf("%lld%lld%lld%lld%lld" , &a , &b , &c , &d , &l);
++c , ++d;
q[i] = node{a , b , c , d , l , q[a].sz + q[b].sz};
q[i].f = ((q[a].f + q[b].f) % P + q[a].sz % P * all(b , d) % P
+ q[b].sz % P * all(a , c) % P + q[a].sz % P * (q[b].sz % P) % P * l % P) % P;
printf("%lld\n" , q[i].f);
}
}
}

最新文章

  1. .netcore跨平台 之 windows上编译,ubuntu上运行
  2. c# 第一个实例 通哥
  3. Why does this json4s code work in the scala repl but fail to compile?
  4. fork
  5. RM报表的选项 注册表位置
  6. 【学习笔记】【C语言】关系运算符
  7. iOS 进阶 第十二天(0413)
  8. Objective-C学习篇01—类的声明与实现
  9. php mvc 框架演示
  10. UI 收集
  11. C/C++对bool operator &lt; (const p &amp;a)const的认识,运算符重载详解(杂谈)
  12. struts2 action接收请求参数和类型转换
  13. CS:APP3e 深入理解计算机系统_3e Datalab实验
  14. SpringMVC 教程 - Controller
  15. Mysql模糊查询like效率,以及更高效的写法
  16. docker被入侵后.............
  17. Mapreduce -- PageRank
  18. AUI-靠谱的移动前端框架
  19. 开源分布式搜索平台ELK(Elasticsearch+Logstash+Kibana)入门学习资源索引
  20. h5聊天室web端(仿微博、微信)|h5仿微信网页端|仿微信界面弹窗

热门文章

  1. Linux 基础-文件权限与属性
  2. 环境安装-Centos7.4安装及配置
  3. SpringBoot 自动装配的原理分析
  4. Redis 中ZSET数据类型命令使用及对应场景总结
  5. [图像处理] YUV图像处理入门4
  6. [OpenCV实战]50 用OpenCV制作低成本立体相机
  7. C#调用接口的简单流程
  8. Input源码解读——从&quot;Show tabs&quot;开始
  9. 高并发解决方案orleans实践
  10. Java基础篇——IO流