bzoj2783: [JLOI2012]树
2783: [JLOI2012]树
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 753 Solved: 447
[Submit][Status][Discuss]
Description
第一行是两个整数N和S,其中N是树的节点数。
第二行是N个正整数,第i个整数表示节点i的正整数。
接下来的N-1行每行是2个整数x和y,表示y是x的儿子。
输出格式:
输出路径节点总和为S的路径数量。
输入样例: |
输出样例: |
3 3 1 2 3 1 2 1 3 |
2 |
数据范围:
对于30%数据,N≤100;
对于60%数据,N≤1000;
对于100%数据,N≤100000,所有权值以及S都不超过1000。
这个是JLOI2012的T1,发出来仅为了试题完整
=============================================================================================
在这个问题中,给定一个值S和一棵树。在树的每个节点有一个正整数,问有多少条路径的节点总和达到S。路径中节点的深度必须是升序的。假设节点1是根节点,根的深度是0,它的儿子节点的深度为1。路径不必一定从根节点开始。
Input
第一行是两个整数N和S,其中N是树的节点数。
第二行是N个正整数,第i个整数表示节点i的正整数。
接下来的N-1行每行是2个整数x和y,表示y是x的儿子。
Output
输出路径节点总和为S的路径数量。
Sample Input
1 2 3
1 2
1 3
Sample Output
HINT
对于100%数据,N≤100000,所有权值以及S都不超过1000。
Source
连倍增都不会写了。。。。
1 #include<bits/stdc++.h> 2 #define N 102333 3 #define rep(i,l,r) for(int i=l;i<=r;i++) 4 using namespace std; 5 int n,m,s[N][22],fa[N][22],now,w,ans,x,y; 6 //f[i][j] 从i点向上走2^j-1步 7 inline int read(){ 8 int x=0,c=getchar(); 9 while(c>57||c<48)c=getchar(); 10 while(c>47&&c<58)x=x*10+c-48,c=getchar(); 11 return x; 12 } 13 int main () { 14 cin>>n>>m; 15 rep(i,1,n) s[i][0]=read(); rep(i,1,n-1) x=read(),y=read(),fa[y][0]=x; 16 rep(j,0,20) rep(i,1,n) fa[i][j+1]=fa[fa[i][j]][j],s[i][j+1]=s[i][j]+s[fa[i][j]][j]; 17 rep(i,1,n) { 18 now=m; w=i; 19 for(int k=19;k>=0;k--) { 20 if(!fa[w][k]) continue; 21 if(s[w][k]<now) now-=s[w][k],w=fa[w][k]; 22 } 23 if(s[w][0]==now) ++ans; 24 } 25 printf("%d\n",ans); 26 }
View Code
转载于:https://www.cnblogs.com/Bloodline/p/5499204.html
bzoj2783: [JLOI2012]树相关推荐
- 洛谷P3252 [JLOI2012]树
题目描述 在这个问题中,给定一个值S和一棵树.在树的每个节点有一个正整数,问有多少条路径的节点总和达到S.路径中节点的深度必须是升序的.假设节点1是根节点,根的深度是0,它的儿子节点的深度为1.路径不 ...
- 2019.5.summary
2019.5.1 CF C. Prefix Sum Primes 感觉CF就是训练妳如何养成对题目强大的YY能力的QAQ 我们构造 如果只有一种,没辙,只能这样放 否则先放一个2,再放一个1 接下来把 ...
- 重走长征路---OI每周刷题记录---9月6日 2014
总目录详见https://blog.csdn.net/mrcrack/article/details/84471041 做题原则,找不到测评地址的题不做.2018-11-28 重走长征路---OI每周 ...
- BZOJ刷题记录---提高组难度
BZOJ刷题记录---提高组难度 总目录详见https://blog.csdn.net/mrcrack/article/details/90228694 序号 题号 算法 思想难度 实现难度 总难度 ...
- 8.25 欢乐emmm赛
三道题 A现代艺术 时间限制 : - MS 空间限制 : 165536 KB 评测说明 : 1s 问题描述 何老板是一个现代派的艺术家.他在一块由n*n的方格构成的画布上作画.一开始,所有格子里 ...
- [颓废史]蒟蒻的刷题记录
QAQ蒟蒻一枚,其实我就是来提供水题库的. 以下记录从2016年开始. 1.1 1227: [SDOI2009]虔诚的墓主人 树状数组+离散化 3132: 上帝造题的七分钟 树状数组 二维区间加减+查 ...
- 判断两个树是否相等和判断tree1是否包含tree2 python实现
判断两个树是否相等 def equal(node_a, node_b):"""判断两个树是否相等:param node_a: :param node_b: :return ...
- 论文溯源树AMiner
来自 DBLP.ArXiv.STM 等多家学术出版机构和平台的数据表明,在过去 20 年间,计算机科学.物理学.统计学等研究领域的出版物总量都有大幅增加.像 CVPR.AAAI 等有关人工智能等新兴领 ...
- Python---哈夫曼树---Huffman Tree
今天要讲的是天才哈夫曼的哈夫曼编码,这是树形数据结构的一个典型应用. !!!敲黑板!!!哈夫曼树的构建以及编码方式将是我们的学习重点. 老方式,代码+解释,手把手教你Python完成哈夫曼编码的全过程 ...
最新文章
- 服务端转发html页面,html5关于外链嵌入页面通信问题(postMessage解决跨域通信)
- 记一次特别的往事 while 循环
- Excel学习笔记002-005:如何按列提取不重复值
- java迷宫实训报告_Java综合实训报告-迷宫.doc
- [BZOJ4873][六省联考2017]寿司餐厅(最大权闭合子图)
- 深掘工业互联网大数据五大维度
- 分布式系统中协调和复制技术的原理
- SqlCommandBuilder自动创建dataAdapter数据库操作命令
- IK10外壳冲击等级测试
- windows版本修改,家庭版改专业版,专业版改教育版,或者是改家庭版
- OEM、ODM、OBM分别是什么?
- 终端设置指南,让Mac/Linux/Windows终端更上一层楼
- Android系统Audio框架介绍
- 2023电工杯数学建模A题思路
- oracle数据类型和Java类型之间的映射关系
- 小陈谈JAVA(数组到底是怎样的,三分钟让你彻底认识数组)
- 奥克兰大学计算机专业硕士,奥克兰大学计算机专业硕士
- Kubernetes相关概念扫盲
- python GSM模块-电脑接收短信
- OpenCascade Matrix
热门文章
- python的数据库操作_Python对数据库操作
- delphi基于html页面和xml实现表单填写,如何从xml文件读取数据,并以delphi语言显示在文本框中...
- 之前出的一道背包题面,暂无题解
- 无线信号拓展与覆盖的解决方案
- NOI2018网络同步赛爆零记
- 【NOIP2003】【Luogu1044】栈
- oracle 修索引改空间_oracle 修改索引现有表空间
- python2 爬虫value_53. Python 爬虫(2)
- 求n!中末尾零的个数
- python数据驱动测试设计_GitHub - 13691579846/DataDriverTestFrameWork: python+selenium+pageobject数据驱动测试框架...