【题目链接】

点击打开链接

【算法】

dfs序 + 线段树

树链剖分同样可以解决这个问题

【代码】

#include<bits/stdc++.h>
using namespace std;
#define MAXN 100010 int i,n,p,a,b,timer;
int tag[MAXN<<],sum[MAXN<<],size[MAXN],fa[MAXN],dfn[MAXN]; vector< int > e[MAXN]; inline void dfs(int u)
{
int i,v;
dfn[u] = ++timer;
size[u] = ;
for (i = ; i < e[u].size(); i++)
{
v = e[u][i];
if (fa[u] != v)
{
fa[v] = u;
dfs(v);
size[u] += size[v];
}
}
}
inline void pushdown(int index)
{
if (tag[index])
{
sum[index<<] += tag[index];
sum[index<<|] += tag[index];
tag[index<<] += tag[index];
tag[index<<|] += tag[index];
tag[index] = ;
}
}
inline void update(int index)
{
sum[index] = sum[index<<] + sum[index<<|];
}
inline void modify(int index,int l,int r,int ql,int qr,int val)
{
int mid;
if (l == ql && r == qr)
{
sum[index] += val;
tag[index] += val;
return;
}
pushdown(index);
mid = (l + r) >> ;
if (mid >= qr) modify(index<<,l,mid,ql,qr,val);
else if (mid + <= ql) modify(index<<|,mid+,r,ql,qr,val);
else
{
modify(index<<,l,mid,ql,mid,val);
modify(index<<|,mid+,r,mid+,qr,val);
}
update(index);
}
inline int query(int index,int l,int r,int pos)
{
int mid;
if (l == r) return sum[index];
pushdown(index);
mid = (l + r) >> ;
if (mid >= pos) return query(index<<,l,mid,pos);
else return query(index<<|,mid+,r,pos);
} int main() { scanf("%d",&n);
for (i = ; i < n; i++)
{
scanf("%d%d",&a,&b);
e[a].push_back(b);
e[b].push_back(a);
}
dfs();
for (i = ; i <= n; i++)
{
scanf("%d",&p);
printf("%d\n",query(,,n,dfn[p]));
modify(,,n,dfn[p],dfn[p]+size[p]-,);
} return ; }

【USACO 2010FEB】 slowdown的更多相关文章

  1. 【USACO 2857】 Steady Cow Assignment

    [题目链接] 点击打开链接 [算法] 二分答案,check的时候跑最大流,即可 [代码] #include<bits/stdc++.h> using namespace std; #def ...

  2. 【USACO 2011】 道路和航线

    [题目链接] 点击打开链接 [算法] SPFA + SLF / LLL 优化 [代码] #include<bits/stdc++.h> using namespace std; #defi ...

  3. 【USACO 2017FEB】 Why Did the Cow Cross the Road III

    [题目链接] 点击打开链接 [算法] 树状数组 [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 100010 ...

  4. 【USACO 2017Feb】 Why Did the Cow Cross the Road

    [题目链接] 点击打开链接 [算法] dist[i][j][k]表示当前走到(i,j),走的步数除以3的余数为k的最小花费 spfa即可 [代码] #include<bits/stdc++.h& ...

  5. 【USACO 2008FEB】 旅馆

    [题目链接] 点击打开链接 [算法] 线段树 对于一个节点,记录它从左端点延伸的最多的空房间的个数,从右端点延伸的最多的空房间个数,和该区间最多的连续 空房间个数 [代码] #include<b ...

  6. 【USACO Mar08】 奶牛跑步 A-star k短路

    Description Bessie准备用从牛棚跑到池塘的方法来锻炼. 但是因为她懒,她只准备沿着下坡的路跑到池塘,然后走回牛棚. Bessie也不想跑得太远,所以她想走最短的路经. 农场上一共有M( ...

  7. 【cogs182】【USACO Jan07】均衡队形【st表】

    题目描写叙述 农夫约翰的 N (1 ≤ N ≤ 50,000) 头奶牛,每天挤奶时总会按相同的顺序站好. 一日.农夫约翰决定为奶牛们举行一个"终极飞盘"比赛.为简化问题.他将从奶牛 ...

  8. 【USACO 2.1.1】城堡

    [题目描述] 我们憨厚的USACO主人公农夫约翰(Farmer John)以无法想象的运气,在他生日那天收到了一份特别的礼物:一张“幸运爱尔兰”(一种彩票).结果这张彩票让他获得了这次比赛唯一的奖品— ...

  9. 【USACO 1.1.1】你的飞碟在这儿

    [问题描述] 一个众所周知的事实,在每一慧星后面是一个不明飞行物UFO. 这些不明飞行物时常来收集来自在地球上忠诚的支持者. 不幸地,他们的空间在每次旅行只能带上一群支持者. 他们要做的是用一种聪明的 ...

随机推荐

  1. [Python3网络爬虫开发实战] 1.5.4-RedisDump的安装

    RedisDump是一个用于Redis数据导入/导出的工具,是基于Ruby实现的,所以要安装RedisDump,需要先安装Ruby. 1. 相关链接 GitHub:https://github.com ...

  2. MongoDB中mapReduce的使用

    MongoDB中mapReduce的使用 制作人:全心全意 mapReduce的功能和group by的功能类似,但比group by处理的数据量更大 使用示例: var map = function ...

  3. [学习资料] Tiny210(S5PV210) u-boot移植

    Tiny210(S5PV210) u-boot移植http://www.microoh.com/bbs/forum.php?mod=viewthread&tid=254&fromuid ...

  4. Data of Ch5 --Dual rotor

    * Results *Conclusion*- little effect of rear rotor on Cp_1- Cp1 is independent of TI** TI effect on ...

  5. hdu 4033 状态压缩枚举

    /* 看别人的的思路 搜索搜不出来我太挫了 状态压缩枚举+好的位置 */ #include<stdio.h> #include<string.h> #define N 20 i ...

  6. [TJOI2010]中位数

    题目描述 给定一个由N个元素组成的整数序列,现在有两种操作: 1 add a 在该序列的最后添加一个整数a,组成长度为N + 1的整数序列 2 mid 输出当前序列的中位数 中位数是指将一个序列按照从 ...

  7. Linux下汇编语言学习笔记46 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  8. hdu3756(三分)

    题意:三维坐标轴,有以原点为圆心,底面在xoy平面上,顶点在z轴上的圆锥,问圆锥的最小体积为多少才能完全覆盖空间里的所有点(n<=10000) 分析: 很容易想到转成二维问题,将其投影到xoz平 ...

  9. 怎样托管你的项目到github上具体教程

    本文将具体介绍怎样托管你的项目到github上 转载请标明出处: http://blog.csdn.net/lxk_1993/article/details/50441442 本文出自:[lxk_19 ...

  10. 2014阿里巴巴WEB前端实习生在线笔试题

    2014年3月31日晚,我怀着稍微忐忑的心情(第一次在线笔试^_^!!)进行了笔试.阿里巴巴的笔试题共同拥有10道,差点儿包括了Web前端开发的各个方面,有程序题.有叙述题.时间很紧张,仅仅完毕了大概 ...