亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? pku 3321 樹狀數(shù)組.txt

?? ACM資料大集合
?? TXT
字號:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <algorithm>
#include <vector>
#include <iterator>
using namespace std;
#define PB push_back
//PKU 3321 樹狀數(shù)組

#define NMAX 100005
#define MMAX 100005
#define INFI 99999999

typedef struct ooparc
{
	int first;
	int second;
}ooparc;

typedef struct oopnode
{
	int begin;
	int end;
	int fa;
}oopnode;

typedef struct oopxulie
{
	int data;
	int has;
}oopxulie;

oopxulie xulie[NMAX*2+5];//DFS序列,data表示點的標號,has表示改點是否有蘋果
ooparc arc[MMAX*2];//重復邊集=輸入的arc序列+將first,second倒置后的序列
oopnode node[NMAX];//在重復邊集中,(arc.fisrt已排序),arc.first對應的開始點和結(jié)束點
oopnode node2[NMAX];//記錄DFS序列某點的第一次出現(xiàn)和第二次出現(xiàn)的位置
int xxx;
int szsz[NMAX*2+5];

int getlow(int k)
{
	return k & (k ^ (k-1));
}

void add(int p)
{
	while(p<NMAX*2)
	{
		szsz[p]++;
		p+=getlow(p);
	}
}

void del(int p)
{
	while(p<NMAX*2)
	{
		szsz[p]--;
		p+=getlow(p);
	}
}

int getsum(int p)
{
	int sum=0;
	while(p>=1)
	{
		sum+=szsz[p];
		p-=getlow(p);
	}
	return sum;
}

void print_xulie(int num)
{
	int i;
	for(i=1;i<=num;i++) printf("%d ",xulie[i].data);
	printf("\n");
	for(i=1;i<=num;i++) printf("%d ",xulie[i].has);
}

bool cmparc(ooparc a,ooparc b)
{
	return a.first<b.first;
}

void build(int now)
{
	int i,p;
	xxx++;
	xulie[xxx].has=1;
	xulie[xxx].data=now;
	node2[now].begin=xxx;
	for(i=node[now].begin;i<=node[now].end;i++)
	{
		p=arc[i].second;
		if(node[now].fa!=p)
		{
			node[p].fa=now;
			build(p);
		}
	}
	xxx++;
	xulie[xxx].has=0;
	xulie[xxx].data=now;
	node2[now].end=xxx;
}

void change(int p)
{
	if(xulie[node2[p].begin].has==0) 
	{
		add(node2[p].begin);
		xulie[node2[p].begin].has=1;
	}
	else 
	{
		del(node2[p].begin);
		xulie[node2[p].begin].has=0;
	}
}

int cal(int p)
{
	return getsum(node2[p].end)-getsum(node2[p].begin-1);
}

void init(int mnum)
{
//	假設(shè)樹的結(jié)構(gòu)是:
//	   1
//	 2   5
//  3   4 6
//        7
//  則編列得到的DFS序列為:
//  1 2 3 3 2 5 4 4 6 7 7 6 5 1
//  則某點的子樹為該序列里兩次出現(xiàn)的這一點之間的標號,我們稱其為該點的DFS區(qū)間
//  如標號5的子樹,對應的DFS區(qū)間為5 4 4 6 7 7 6 5
//  建樹時第一次出現(xiàn)的標號對應的has值為1,否則為0,則該DFS序列對應的has為:
//  1 1 1 0 0 1 1 0 1 1 0 0 0 0
//  要查找某點子樹的has值之和,只要求這一點的DFS區(qū)間上的has之和即可
//  求區(qū)間上的數(shù)之和,樹狀數(shù)組最擅長。
	int i;
	for(i=1;i<=mnum;i++) 
	{
		arc[mnum+i].first=arc[i].second;
		arc[mnum+i].second=arc[i].first;
	}
	sort(arc+1,arc+2*mnum+1,cmparc);
	node[arc[1].first].begin=1;
	for(i=2;i<=2*mnum;i++)
	{
		if(arc[i-1].first!=arc[i].first) 
		{
			node[arc[i].first].begin=i;
			node[arc[i-1].first].end=i-1;
		}
	}
	node[arc[i-1].first].end=2*mnum;
	for(i=1;i<NMAX;i++)
	{
		node[i].fa=-10;
	}
	node[1].fa=-1;
	xxx=0;
	build(1);
	for(i=1;i<=2*mnum+2;i++)
	{
		if(xulie[i].has==1) add(i);
	}
//	print_xulie(2*mnum+2);
}

int main()
{
	int num,i,qnum,x,y;
	char str[3];
	scanf("%d",&num);
	for(i=1;i<=num-1;i++)
	{
		scanf("%d %d",&arc[i].first,&arc[i].second);
	}
	init(num-1);
	scanf("%d",&qnum);
	for(i=1;i<=qnum;i++)
	{
		scanf("%s %d",&str,&x);
		if(str[0]=='Q') printf("%d\n",cal(x));
		else change(x);
	}
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产免费一区二区三区香蕉| 精品一区二区三区久久久| 99re热视频这里只精品| 亚洲美女免费在线| 欧美日韩一级二级| 成人免费视频一区| 国产盗摄女厕一区二区三区 | 午夜精品一区二区三区免费视频| 日韩视频免费直播| 色综合久久久久网| 国模一区二区三区白浆 | 日韩精品电影在线| 久久久久久久久久电影| 欧美日韩一区成人| 99久久久无码国产精品| 国内久久婷婷综合| 天使萌一区二区三区免费观看| 国产精品无人区| 精品国产百合女同互慰| 欧美老肥妇做.爰bbww| 一本色道久久加勒比精品| 国产精品2024| 极品少妇xxxx偷拍精品少妇| 午夜视频在线观看一区| 亚洲日本韩国一区| 国产精品福利电影一区二区三区四区| 日韩欧美国产精品一区| 777午夜精品视频在线播放| 在线看日韩精品电影| 色呦呦国产精品| 成人av高清在线| 国产91富婆露脸刺激对白| 精品一区二区在线视频| 美女一区二区视频| 日本不卡一区二区| 天天综合色天天| 亚洲成av人片在www色猫咪| 一区二区三区小说| 亚洲主播在线观看| 亚洲成人动漫在线观看| 午夜伦理一区二区| 亚洲高清免费观看高清完整版在线观看 | 国产精品伊人色| 欧美日产在线观看| 在线观看视频一区二区| yourporn久久国产精品| 成人午夜视频在线观看| 夫妻av一区二区| 丁香亚洲综合激情啪啪综合| 国产成人欧美日韩在线电影| 国产91精品精华液一区二区三区 | 亚洲第一综合色| 一区二区三区免费看视频| 亚洲免费毛片网站| 亚洲国产一区二区在线播放| 午夜成人在线视频| 免费欧美在线视频| 国产一区二区三区av电影| 国产成人在线免费观看| 国产成人av自拍| 91在线免费播放| 欧美色视频一区| 日韩免费性生活视频播放| 久久久综合九色合综国产精品| 国产亚洲综合在线| 综合av第一页| 日本在线不卡一区| 国产一区二区伦理片| 99国产一区二区三精品乱码| 欧美午夜精品一区| 日韩欧美黄色影院| 国产精品久久久久一区二区三区共 | 99精品视频一区| 欧美日韩国产成人在线免费| 欧美精品一区男女天堂| 亚洲婷婷在线视频| 日本三级亚洲精品| 粉嫩av亚洲一区二区图片| 91老师国产黑色丝袜在线| 欧美疯狂性受xxxxx喷水图片| 欧美va在线播放| 亚洲人成在线播放网站岛国| 秋霞电影网一区二区| 大白屁股一区二区视频| 欧美日韩你懂的| 久久伊人蜜桃av一区二区| 亚洲免费av高清| 美女免费视频一区| 色综合久久天天| 精品久久久久99| 一区二区三区四区乱视频| 久久99国产精品尤物| 色呦呦一区二区三区| 欧美精品一区二区三区在线 | 亚洲电影在线播放| 国产传媒久久文化传媒| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 国产精品二三区| 蜜桃精品视频在线| 色综合av在线| 国产婷婷精品av在线| 日韩精品一二三| 色婷婷av一区二区三区软件| 久久久精品蜜桃| 人人精品人人爱| 欧美午夜一区二区三区| 国产精品麻豆一区二区 | 高清在线不卡av| 欧美一区二区三区四区视频| 亚洲视频免费看| 国产成人在线观看| 日韩欧美成人一区二区| 亚洲午夜精品网| 99久久久久久| 亚洲国产精品av| 国产一区二区看久久| 欧美一区二区三区免费观看视频| 亚洲乱码国产乱码精品精98午夜| 国产精品小仙女| 欧美精品一区二区三区在线播放| 丝袜诱惑制服诱惑色一区在线观看 | 国产成人精品综合在线观看 | 丝袜诱惑制服诱惑色一区在线观看| 91亚洲精品一区二区乱码| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲国产日日夜夜| 色婷婷综合久久| 一区精品在线播放| 成人黄色777网| 中文字幕第一页久久| 国产高清精品网站| 精品国产麻豆免费人成网站| 男女性色大片免费观看一区二区 | 欧美日韩亚洲国产综合| 国产精品第四页| 国产呦萝稀缺另类资源| 精品毛片乱码1区2区3区| 免费人成在线不卡| 欧美一区二区三区的| 日韩高清中文字幕一区| 欧美不卡激情三级在线观看| 麻豆精品视频在线观看视频| 日韩欧美久久久| 精品综合久久久久久8888| 欧美tk—视频vk| 国产伦理精品不卡| 国产亲近乱来精品视频| 国产69精品久久久久777| 国产精品三级av在线播放| 成人91在线观看| 一区二区三区在线免费观看| 欧美性猛片xxxx免费看久爱 | 国产成a人无v码亚洲福利| 国产亚洲午夜高清国产拍精品| 国产福利视频一区二区三区| 中文字幕av免费专区久久| www.欧美亚洲| 亚洲一区二区三区小说| 在线播放91灌醉迷j高跟美女| 青青草国产成人99久久| 久久免费视频一区| 99久久久国产精品免费蜜臀| 亚洲综合在线电影| 欧美一区二区三区四区在线观看 | 国产色婷婷亚洲99精品小说| www.av亚洲| 亚洲第一在线综合网站| 欧美大片在线观看一区| 成人精品视频一区二区三区| 一区二区三区在线观看网站| 91麻豆精品国产91久久久久久久久| 久久精品理论片| 国产精品传媒入口麻豆| 欧美日本视频在线| 国产在线精品一区二区夜色| 中文一区二区在线观看| 欧美午夜在线观看| 国产在线不卡视频| 亚洲精品中文在线影院| 欧美成人aa大片| 一本色道亚洲精品aⅴ| 久久精品免费观看| 亚洲人123区| 日韩精品一区二区三区老鸭窝| 成人av集中营| 蜜臀精品一区二区三区在线观看| 欧美高清在线精品一区| 欧美久久一区二区| 成人午夜电影久久影院| 日韩av电影免费观看高清完整版在线观看 | 国产成人一区在线| 亚洲第一主播视频| 国产视频亚洲色图| 国产精品毛片久久久久久| 欧美精品国产精品| 成人美女视频在线观看18| 日本人妖一区二区| 亚洲特级片在线| 久久久亚洲国产美女国产盗摄| 欧美日韩精品一区二区在线播放|