题目


Input

第一行包括两个整数n,type,其中type=0或1。
接下来n行两个整数Up[i]与A[i],代表基站i直传基站以及上传速率。

接下来给出一个整数Q。
接下来Q组询问,每组有若干行。
第一行两个整数x,p,代表上传的基站x和发生变动的数目。
接下来p行两个整数Cx,Cy,代表发生变动节点的编号和权值。
若type=1,(Cy xor (abs(lastans) and 16383))为真正的Cy,lastans为上一次询问的波动值,(i=1时,lastans=0)。
每两组询问中有一行空行。

Output
输出共Q行,每行一个整数C为第i次询问时系统的波动值。

分析

首先,这题强制在线,其次这题求的背景是一棵树上的一条链上排过序的数列的特殊的和,我们可以发现对于一种数值,并且它在这条链上出现了x次,若x&1==0那么它对答案贡献为0,若x&1==1那么它对答案贡献值为它本身。
而我们发现这种数值最大也就只有16383个。而且我们可以基于离线的思想,先处理出本身的答案,然后再根据它给出的条件来更改。还有我们做到一个点,那么它儿子的答案可以从它本身传递得来。
所以我们对于题目所要求的答案所用的数据结构也就出来了——主席树。
我们在原本的主席树上再多维护一个c[i]表示第i棵主席树上的答案,那么c[i]=c[left[i]]+或-c[right[i]],是加是减,我们只用判断一下左边的节点数量即可。
到此便可以很好的解决这个问题了。
而插入和删除操作其实差不多的,一个加一一个减一
其他的照样维护就可以了。

varn,tpe,lastans,i,j,m,tot,num,w,k,bz:longint;sum,left,right,root,c:array[0..3200000] of longint;b,next,last,cx,cy,a:array[0..1000000] of longint;
procedure make(var x:longint;y,l,r,e,o:longint);
var mid:longint;
beginif (o=0)or(x=0) then begininc(tot);x:=tot;end else x:=y;left[x]:=left[y];right[x]:=right[y];sum[x]:=sum[y]+1;if l=r then beginif sum[x] mod 2<>0 then c[x]:=e else c[x]:=0;exit;end;mid:=(l+r)shr 1;if mid>=e then make(left[x],left[y],l,mid,e,o) else make(right[x],right[y],mid+1,r,e,o);sum[x]:=sum[left[x]]+sum[right[x]];if sum[left[x]] mod 2=0 then c[x]:=c[left[x]]+c[right[x]] else c[x]:=c[left[x]]-c[right[x]];
end;
procedure delt(var x:longint;y,l,r,e:longint);
var mid:longint;
beginif x=0 then begininc(tot);x:=tot;end else x:=y;left[x]:=left[y];right[x]:=right[y];sum[x]:=sum[y]-1;if l=r then beginif sum[x] mod 2<>0 then c[x]:=e else c[x]:=0;exit;end;mid:=(l+r)shr 1;if mid>=e then delt(left[x],left[y],l,mid,e) else delt(right[x],right[y],mid+1,r,e);sum[x]:=sum[left[x]]+sum[right[x]];if sum[left[x]] mod 2=0 then c[x]:=c[left[x]]+c[right[x]] else c[x]:=c[left[x]]-c[right[x]];
end;
procedure dfs(x,y:longint);
var p:longint;
beginmake(root[x],root[y],0,16383,a[x],0);p:=last[x];while p<>0 do begindfs(b[p],x);p:=next[p];end;
end;
procedure insert(x,y:longint);
begininc(num);b[num]:=y;next[num]:=last[x];last[x]:=num;
end;
beginreadln(n,tpe);readln(i,a[1]);for i:=2 to n do beginreadln(j,a[i]);insert(j,i);end;dfs(1,0);readln(m);for i:=1 to m do beginreadln(j,w);for k:=1 to w do beginreadln(cx[k],cy[k]);if tpe=1 then cy[k]:=(cy[k] xor(abs(lastans)and 16383));end;for k:=1 to w do beginmake(root[j],root[j],0,16383,cy[k],1);delt(root[j],root[j],0,16383,a[cx[k]]);end;lastans:=c[root[j]];writeln(lastans);for k:=1 to w do begindelt(root[j],root[j],0,16383,cy[k]);make(root[j],root[j],0,16383,a[cx[k]],1);end;end;
close(input);close(output);
end.

【NOIP2014模拟】木马相关推荐

  1. 攻击 | 神奇的木马(虚拟机模拟木马入侵)

    攻击 | 神奇的木马(在虚拟机环境中模拟木马入侵) →木马渊源 →实验模拟 实验目的 实验设备 实验工具 →实验原理 →具体实验 1.在虚拟机中打开XP系统和2003系统,设置两者IP,保证两者在同一 ...

  2. jzoj2702. 探险jzoj3917. 【NOIP2014模拟11.2A组】福慧双修

    Description 探险家小T好高兴!X国要举办一次溶洞探险比赛,获奖者将得到丰厚奖品哦!小T虽然对奖品不感兴趣,但是这个大振名声的机会当然不能错过! 比赛即将开始,工作人员说明了这次比赛的规则: ...

  3. Rootkit 之 adore-ng 模拟木马病毒

    Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件.进程和网络链接等信息,比较多见到的是Rootkit一般都和木马.后门等其他恶意程序结合使用. 在我们生活中,经常看的电视 ...

  4. JZOJ 3809. 【NOIP2014模拟8.25】设备塔

    Description 为了封印辉之环,古代塞姆利亚大陆的人民在异空间中建造了一座设备塔. 简单的说,这座设备塔是一个漂浮在异空间中的圆柱体,圆柱体两头的圆是计算核心,而侧面则是 传输信息所用的数据通 ...

  5. 2016.7.15 NOIP2014模拟试题解题报告(又名:方克顺和他的正余弦朋友们(

    我发现自从我开始写博客以后OI成绩上升很明显啊orzzz,继续保持继续保持(然而昨晚上开夜车到十二点,感觉这次没发挥好)(下次没考好就尴尬了)(所以一定要考好!),嗯这次考得还是很不错的,也深入思考了 ...

  6. 3917 【NOIP2014模拟11.2A组】福慧双修 (Standard IO)题解

    目录 目录 原题 Description Input Output Sample Input Sample Output Data Constraint 题解 40分 100分 模型转换 做法 I I ...

  7. C语言做着做着会变成木马程序,[原创]C语言SDK模拟木马行为

    1.程序运行后将自身复制到C:\\WINDOWS\\system32\\文件夹下,程序名为vrius.exe. 2.在注册表HKEY_LOCAL_MACHINE\\Software\\Microsof ...

  8. JZOJ 3815. 【NOIP2014模拟9.7】克卜勒

    Description 一闪一闪亮晶晶/好像你的身体/藏在众多孤星之中/还是找得到你/挂在天上放光明/反射我的孤寂/提醒我/我也只是一颗寂寞的星星/oh~/浩瀚的世界里/更迭的人海里/和你互相辉映/而 ...

  9. JZOJ 3775. 【NOIP2014模拟8.15】因子的排列

    Description 一天,小B学习了分解质因数的相关内容.他发现,一个数的质因子可以有许多不同的排列方式,例如20=2*2*5=2*5*2=5*2*2,那么小B认为20的质因子有3种不同的排列方式 ...

最新文章

  1. ThinkPHP学习笔记之Model操作
  2. 【转】 最新版chrome谷歌浏览器Ajax跨域调试问题
  3. openresty开发系列20--lua的时间操作
  4. 开源免费,zabbix服务器监控全面实现
  5. 标准模板库之双向循环链表的内部关系
  6. Emlog文章特色图生成插件分享
  7. 【英语学习】【Level 08】U05 Better option L2 Online shopping
  8. 【LeetCode】【HOT】20. 有效的括号(栈)
  9. 中国主流的大数据分析厂商
  10. lottie动画_极光小课堂 | 用 Lottie 实现超炫酷动画
  11. 省选专练之数学 BZOJ2820 YY的GCD
  12. arduino 中断 串口_【Arduino教程】第一讲:Arduino是什么?
  13. 51单片机8位流水灯左移实现(比较简短)
  14. 二代身份证读取 中控ID180 二三代身份证阅读器 Vue版本
  15. 《攻守道》笔记(3)
  16. Twincat3之C++
  17. php还款功能,智能还款的原理
  18. 微信小程序之左右布局
  19. 123道c++笔试题汇总
  20. 存储过程排版工具_文案创作者必备的7个写作辅助工具类网站,记得收藏

热门文章

  1. 把读过的书记录下来。很多年以后再看看这个书单,应该很有趣~
  2. 28.深入浅出MYSQL的优化
  3. 理光Ricoh MP C3002 一体机驱动
  4. 操作系统纯净版 下载地址
  5. php 开源程序_国内PHP开源建站程序一览
  6. 四分位数的位置计算原理?
  7. yapi接口导出为word_接口文档神器YApi
  8. 【网络技术】(5)身份认证技术与访问控制------数字签名技术
  9. 一代信仰落幕,凯迪拉克CTS-V已经停产
  10. MatrixDB Mars存储引擎