• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
HaibaraAi
博客园    首页    新随笔    联系   管理    订阅  订阅

Contest2037 - CSU Monthly 2013 Oct (problem E 1322: ZZY‘s new company)

1322: ZZY‘s new company

Time Limit: 3 Sec  Memory Limit: 312 MB
Submit: 118  Solved: 13
[Submit][Status][Web Board]

Description

  zzy开了一家公司,然后他为公司制定了人事制度:为每个员工都定一个直接的上属(除了zzy自己),这样就把公司表示成了一个树形的人事关系图,树的最顶端就是zzy自己。如果a的直接上属是b则称a是b的一级下属,接下去的依次称为2级、3级……k级下属。

  由于如zzy奇葩的想法,他将改变一部分员工的工资,方法依旧是将员工原来的工资异或一个数,得到新的工资。

Input

 

  每个例子的第一行含两个数N和Q,表示zzy找了N(0<N<=100000)个员工,接下来有Q(0<Q<=100000)个询问。

  接下来的N行,每行有两个数Ui和Vi(第i行表示id为i的员工资料),表示员工i的上属编号为Ui,原始工资为Vi。然后有Q行,每行的第一个数是a,为0或者1表示一种询问。

  如果a为0,则这行还有三个数b,c,v(0<=b<=N, 0 < c, v<=1000000000),表示zzy将b的所有c级下属工资全部异或v,得到新工资。

  如果a为1,则这行还有两个数b,c(0<=b<=N, 0 < c),询问b的所有c级下属的总工资。

 

Output

  对于每个修改,如果b没有c级的下属则无视这个修改。

  对于每个询问,输出一个数来表示结果,如果b没有c级下属则输出-1。

Sample Input

3 3
0 1
1 2
2 4
1 0 1
0 0 1 3
1 0 1
3 4
0 1
0 2
0 3
1 0 1
0 0 1 6
1 0 1
1 0 2

Sample Output

1
2
6
16
-1

HINT

64位整形格式输入、读出请用%lld

 

CSU_CX

Source

CSU Monthly 2013 Oct.

 
posted @ 2013-10-08 18:25  HaibaraAi  阅读(155)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3