2022春每日一题:Day 38


题目[USACO17JAN]Promotion Counting P

从根节点dfs一遍,树状数组维护进入和出去时这个节点的贡献,一减就是答案

代码:

#include 
#include 
#include 
#include 
#include 
#define lowbit(x) x&-x
const int N=1e5+5; 
using namespace std;
struct pos
{
	int v,id;
	pos(int vv,int ii)
	{
		v=vv;id=ii;
	}
	pos(){
	}
	friend bool operator < (pos a,pos b)
	{
		return a.v g[N];
namespace fenwick
{
	struct fw
	{
		int c;
	}e[N];
	void modify(int x,int v)
	{
		for(int i=x;i<=n;i+=lowbit(i))
		    e[i].c+=v;
	}
	int query(int x)
	{
		int ret=0;
		for(int i=x;i;i-=lowbit(i))
		    ret+=e[i].c;
		return ret;
	}
}
using namespace fenwick;
void dfs(int u,int fa)
{
	++tot;
	modify(a[u],1);
	fs[u]=tot-query(a[u]);
	for(int i=0;i