1782: [Usaco2010 Feb]slowdown 慢慢游
来源:互联网 发布:linux 查看权限 编辑:程序博客网 时间:2024/05/18 22:43
题目链接
题目大意:有n头牛从树上的一个点到达另一个点,求每头牛经过其他牛的个数
题解:当一头牛到达一个点x后,所有终点在以x为根的子树中的牛答案+1,区间修改,单点查询dfs序就好了。Orz hzwer写法
我的收获:劲
#include<iostream>#include<cstdio>#include<cstring>#define N 100005using namespace std;inline int read(){ int x=0;char ch=getchar(); while(ch<'0'||ch>'9')ch=getchar(); while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x;}int n,cnt;int p[N],ans[N],head[N],t[N];struct data{int to,next;}e[N+N];void ins(int u,int v){e[++cnt].to=v;e[cnt].next=head[u];head[u]=cnt;}void insert(int u,int v){ins(u,v);ins(v,u);}inline int lowbit(int x){return x&(-x);}void update(int x,int val){for(int i=x;i<=n;i+=lowbit(i))t[i]+=val;}int ask(int x){ int sum=0; for(int i=x;i>0;i-=lowbit(i)) sum+=t[i]; return sum;}void dfs(int x,int fa){ ans[p[x]]=ask(p[x]); update(p[x],1);//x点对询问比它晚(p[x]值大),x及的子树(dfs搜索顺序保证)的点有贡献 for(int i=head[x];i;i=e[i].next) if(e[i].to!=fa) dfs(e[i].to,x); update(p[x],-1);}int main(){ n=read(); for(int i=1;i<n;i++) insert(read(),read()); for(int i=1;i<=n;i++) p[read()]=i;//按询问次序排列 dfs(1,0); for(int i=1;i<=n;i++) printf("%d\n",ans[i]); return 0;}
阅读全文
0 0
- 【bzoj 1782】: [Usaco2010 Feb]slowdown 慢慢游
- 1782: [Usaco2010 Feb]slowdown 慢慢游
- bzoj 1782: [Usaco2010 Feb]slowdown 慢慢游
- BZOJ 1782 [Usaco2010 Feb]slowdown慢慢游 树状数组
- bzoj1782: [Usaco2010 Feb]slowdown 慢慢游
- [BZOJ1782] [Usaco2010 Feb]slowdown 慢慢游
- bzoj1782[Usaco2010 Feb]slowdown 慢慢游
- [bzoj1782][Usaco2010 Feb]slowdown 慢慢游 dfs序+线段树
- bzoj 1782: [Usaco2010 Feb]slowdown 慢慢游 (线段树+DFS序)
- BZOJ 1782 [Usaco2010 Feb]slowdown 慢慢游 dfs序,树状数组
- [BZOJ1782][Usaco2010 Feb]slowdown 慢慢游(dfs序+线段树)
- 【洛谷2982】[Usaco2010 Feb]慢下来Slowdown(dfs序+线段树)
- chocolate giving[usaco2010 Feb]
- bzoj2014 [Usaco2010 Feb]Chocolate Buying
- bzoj2015 [Usaco2010 Feb]Chocolate Giving
- [BZOJ2015][Usaco2010 Feb]Chocolate Giving
- [bzoj2015&&Usaco2010 Feb] Chocolate Giving
- 2015: [Usaco2010 Feb]Chocolate Giving
- mongodb用户管理与权限配置
- USB协议架构及驱动架构
- react native 无法reload调试
- centos7只有lo网卡的解决方法
- 正则匹配
- 1782: [Usaco2010 Feb]slowdown 慢慢游
- [iuud8]cocos2dx-Lua之display
- python 将Excel文件转csv
- Java实现-最长上升子序列
- Android线程—synchronized与Lock
- 清空tomcate中的缓存
- PHP查询分页的实现
- 数据天空WIFI探针传感器设备解决方案
- 各种排序算法的对比与C++实现