首页 > 其他分享 >2023(ICPC)江西省赛I题题解

2023(ICPC)江西省赛I题题解

时间:2023-05-24 09:14:03浏览次数:59  
标签:int 题解 边权 cin ICPC 异或 相连 2023 ll

I. Tree

题意: 两种操作,操作1:将一棵树一条路径上的边权异或上一个数,操作2:或者询问一个点周 围所有边权的异或和。

题解: 首先,异或有一个性质 A ⨁ A = 0 ⇒ A ⨁ B ⨁ A = B

在进行操作一时,对X到Y的简单路径上的每一条边权异或,会是这样的情况 X _ w1_ Z _ w2_P_w3_Y, 根据上面的性质,对w1异或一个数然后对w2异或一个同一个数,相当于对Z点相连的边权的异或和不变,只有X点和Y点的相连的异或和会被改变,所有可以先预先处理出每个节点到与它相连节点的所有边权的异或和。

进行操作一:对X点相连边的异或和异或值和对Y点相连边的异或和异或值,进行操作二:直接输出点相连的边的异或和

 

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define cs ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
 4 typedef long long ll; 
 5 const int N = 5e5+10;
 6  
 7 ll z[N];//z[i]表示与i点相连的边权的异或和
 8 
 9 void slove(){
10      int n,q;
11      cin >> n >> q;
12      for ( int i = 1; i < n; i++ ){
13          ll x,y,w;
14          cin >> x >> y >> w;
15          z[x] ^= w;
16          z[y] ^= w;
17      }     
18      while ( q-- ){
19          int op;
20          cin >> op;
21          if ( op == 1 ){
22             ll x,y,w;
23             cin >> x >> y >> w;        
24             z[x] ^= w;
25             z[y] ^= w;
26         }else{
27              ll x;
28              cin >> x;
29              cout << z[x] << '\n';
30         }
31      }
32 }
33 int main(){
34     cs;
35     int t;
36     t = 1;
37     while ( t-- ){
38         slove();
39     }
40     return 0;
41 }

 

标签:int,题解,边权,cin,ICPC,异或,相连,2023,ll
From: https://www.cnblogs.com/nclg-caigou/p/17426501.html

相关文章

  • APIO 2023 真·旅游记
    Day0不知道为什么能来线上,就当来南京旅游了。前一周被感冒折磨的要死,爸妈阳了还不能回家,状态非常非常差,上周末还去深圳打了gdcpc。很累。早上六点钟起床,赶七点半的飞机,大概十点就到了。下飞机发现APIO的老师在迎接我们,等到十一点之后就出发去了酒店。车上甚至有桌子,其他人......
  • 【愚公系列】2023年05月 .NET CORE工具案例-C#调用Python的二种方式
    (文章目录)前言.NET调用Python的作用和意义是可以利用Python强大的数据处理和机器学习能力,结合.NET的优势进行开发,提高开发效率和应用性能。同时,Python也可以通过.NET进行调用,实现跨语言的开发和应用。一、C#调用Python的三种方式1.ironPython调用1.1ironPython的安装IronP......
  • 2023-05-23:如果交换字符串 X 中的两个不同位置的字母,使得它和字符串 Y 相等, 那么称 X
    2023-05-23:如果交换字符串X中的两个不同位置的字母,使得它和字符串Y相等,那么称X和Y两个字符串相似。如果这两个字符串本身是相等的,那它们也是相似的。例如,"tars"和"rats"是相似的(交换0与2的位置);"rats"和"arts"也是相似的,但是"star"不与"tars","rats",或&quo......
  • 2023.5.23
     1#include<iostream>2#include<iomanip>3usingnamespacestd;4floatPI=3.14159f;5classShape6{7public:8virtualfloatgetArea()=0;9};10classCircle:publicShape11{12public:13floatr;14float......
  • 2023-05-23:如果交换字符串 X 中的两个不同位置的字母,使得它和字符串 Y 相等, 那么称 X
    2023-05-23:如果交换字符串X中的两个不同位置的字母,使得它和字符串Y相等,那么称X和Y两个字符串相似。如果这两个字符串本身是相等的,那它们也是相似的。例如,"tars"和"rats"是相似的(交换0与2的位置);"rats"和"arts"也是相似的,但是"star"不与"tars","rats",或"a......
  • 每日总结2023-05-23
    今天对于javaweb进行了复习以及回忆,在进行javaweb项目中使用idea进行时,webServlet注解不能正常使用,经讨论,查找资料,发现是路径错误,应该是/包名/注解名/的格式,在使用中发生了以上错误并加以改正。packageservlet;importbean.keBean;importrepository.KeRep;importjava......
  • 2023/5/23
    L1-033出生年分数 15全屏浏览题目作者 陈越单位 浙江大学以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才......
  • day77(2023.5.23)
    1.JSP简介 2.JSP运行原理 3.JSP标签的使用运行结果: 4.JSP原始标签的使用 运行结果:5.JSP的指令标签6.JSP的内置对象 7.请求转发 8.请求转发案例 运行结果: 9.JSP中的四大作用域对象 10.JS......
  • 2023冲刺国赛模拟 7.0
    T1Matrix很容易想到一个\(O(n^4)\)做法,用uint128压位,然后你发现它过了……正解考虑分治,取出矩阵中间的列\(mid\),由于跨越\(mid\)列的询问必然经过\(mid\)列上一点,因此对于\(mid\)左边的点,预处理每个点向右,向下可以到达的所有\(mid\)处的点,对于\(mid\)右边的点,......
  • 2023 5 23
    #include<iostream>#include<iomanip>#definePI3.14159fusingnamespacestd;classshape{public:shape(){}~shape(){}virtualfloats(){return0;};};classcircle:publicshape{private:floatr;public:circle(fl......