博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 2783: [JLOI2012]树【树上差分】
阅读量:5086 次
发布时间:2019-06-13

本文共 938 字,大约阅读时间需要 3 分钟。

注意是等于s不是大于s

dfs,用set或者map存这条链到root的点权和sum[u],更新答案的时候查一下有没有s-sum[u]即可

#include
#include
#include
using namespace std;const int N=500005;int n,m,a[N],h[N],cnt,s[N],ans;set
st;struct qwe{ int ne,to;}e[N<<1];int read(){ int r=0,f=1; char p=getchar(); while(p>'9'||p<'0') { if(p=='-') f=-1; p=getchar(); } while(p>='0'&&p<='9') { r=r*10+p-48; p=getchar(); } return r*f;}void add(int u,int v){ cnt++; e[cnt].ne=h[u]; e[cnt].to=v; h[u]=cnt;}void dfs(int u,int fa){ s[u]=s[fa]+a[u]; st.insert(s[u]); if(st.count(s[u]-m)) ans++; for(int i=h[u];i;i=e[i].ne) if(e[i].to!=fa) dfs(e[i].to,u); st.erase(s[u]);}int main(){ n=read(),m=read(); for(int i=1;i<=n;i++) a[i]=read(); for(int i=1;i

转载于:https://www.cnblogs.com/lokiii/p/9691202.html

你可能感兴趣的文章
StringBuffer类
查看>>
20181113-1 版本控制报告
查看>>
luogu3146 [USACO16OPEN]248
查看>>
Notes of the scrum meeting(2013/10/20)
查看>>
const和volatile分析
查看>>
分块大法吼2
查看>>
git命令?
查看>>
c#杨辉三角
查看>>
Kite(几何+镜面对称)
查看>>
关于数组和指针作为参数时遇到的问题
查看>>
Qt精简编译方法总结
查看>>
Jmeter JDBC Request--测试数据库连接 拒绝解决方案
查看>>
原型与原型链
查看>>
hdu 1195 Open the Lock
查看>>
leetcode Range Sum Query - Mutable
查看>>
20145209&20145309信息安全系统设计基础实验报告 (5)
查看>>
CentOS 6 minimal 安装之后添加gnome
查看>>
关于html转word图片和Word总是要放在绝对的目录下才能显示问题解决
查看>>
总结(三)
查看>>
BLE 5协议栈-直接测试模式
查看>>