I - Tree Gym - 104385I(基础操作性质)

news/2024/10/25 15:26:55/

这题呢,就是知道异或的性质就可以了

一:

相同为0,不同为1,即

1 ^ 1 = 0

0 ^ 0 = 0

1 ^ 0 = 1

二:

(1)交换律: A ^ B = B ^ A

(2)结合律: ( A ^ B ) ^ C = A ^ ( B ^ C )

(3)自反性: A ^ B ^ B = A (由结合律可推: A ^ B ^ B = A ^ ( B ^ B ) = A ^ 0 = A)

(本题就是用的这个性质,对于操作一除了开头与结尾异或一次,其余异或两次,故不变,所以直接维护点就可以了)

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10; 
#define int long long
int g[N];
int n,q;
int u,v,w;
int a,b,c;
signed main()
{std::ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);cin>>n>>q;for(int i=1;i<n;i++){cin>>u>>v>>w;g[u]^=w;g[v]^=w;}while(q--){int op;cin>>op;if(op==1){cin>>a>>b>>c;g[a]^=c,g[b]^=c;}else {cin>>a;cout<<g[a]<<'\n';}}return 0;
}

其他操作性质

按位或运算符(|)(有1为1,全0则0)

运算规则:0|0=0;  0|1=1;  1|0=1;   1|1=1;

即 :参加运算的两个对象只要有一个为1,其值为1。

例如:3|5 即 00000011 | 0000 0101 = 00000111  因此,3|5的值得7。 

按位与运算符(&)(有0为0,全1则1)

参加运算的两个数据,按二进制位进行“与”运算。

运算规则:0&0=0;  0&1=0;   1&0=0;    1&1=1;

 即:两位同时为“1”,结果才为“1”,否则为0

例如:3&5  即 0000 0011& 0000 0101 = 00000001  因此,3&5的值得1。
 


http://www.ppmy.cn/news/170906.html

相关文章

ARM的作业

写1-100累加&#xff0c;把结果放在r0里面 .text .globl _start_start: mov r0, #0mov r1, #0step:add r0, r0, r1add r1, r1, #1cmp r1, #101moveq pc,lrbl step.end

Rainbow Brackets使用

括号颜色失效问题 IDEA同时安装Rainbow Brackets&#xff08;括号彩色插件&#xff09;和Material Theme UI&#xff08;主题插件&#xff09;后导致&#xff0c;括号彩色不起作用。可以手动配置。 如图&#xff0c;依次将颜色修改为以下配色 最佳颜色配置&#xff08;默认配…

rainbow彩虹色

彩虹色 [ #d60808, #d68308, #acd608, #31d608, #08d65a, #08d6d6, #085ad6, #3108d6, #ac08d6, #d60883 ] 彩虹渐变背景色 div::before {background: radial-gradient( #d60808, #d68308, #acd608, #31d608, #08d65a, #08d6d6, #085ad6, #3108d6, #ac08d6, #d60883 );opacity:…

Rainbow Brackets

哈哈&#xff0c;满足小仙女写代码的小工具。 IDEA在插件库里搜插件“Rainbow Brackets”即可。 效果如下&#xff1a; 括号效果&#xff1a; 高亮效果(默认快捷键 mac : command鼠标右键单击, windows : ctrl鼠标右键单击)&#xff1a; 选中部分外暗淡效果&#xff08;默认快…

代码随想录补打卡 42 接雨水 84 柱状图中最大的矩形

42 接雨水 代码如下 func trap(height []int) int { if len(height) < 2 { 首先需要形成一个凹槽才能接到雨水&#xff0c;而凹槽需要至少三个元素&#xff0c;所以如果长度小于等于2就直接返回0 return 0 } res : 0 stack : make([]int,len(height)) 定义一…

Rainbow Brackets的替代品

直接去插件市场搜 Rainbow Brackets Lite 彩虹括号精简版 从6.26版本后&#xff0c;从2022.3.1版本开始 原Rainbow Brackets插件开始收费&#xff0c;这个插件是原来插件的精简版&#xff0c;且免费。 觉得有用就点个赞吧&#xff0c;这样更多的人就能看到它了。&#x1f37a;&…

弘辽科技:派代网要跟大家说再见了

春节已过&#xff0c;派代网要跟大家说再见了。 作为卖家学习成长社区&#xff0c;派代网自2007年上线以来&#xff0c;伴随电商行业走过了15个年头。这些年来&#xff0c;我们陪伴一波又一波电商人成长&#xff0c;也近距离目睹了许多优秀电商公司的崛起。感谢这个好时代&…

Rainbow Brackets的配色修改和使用

修改配色&#xff1a;&#xff09; 敲好看内&#xff01;&#xff01; 记得每个都要改噢&#xff01; 5分别对应的是&#xff1a; 圆括号 方括号 波形括号 尖括号 6分别对应的是&#xff1a; ECB1E9 F6F0A9 78B8EF F3BBA2 A9D57E 使用方式 Ctrl 鼠标右键&#xff1a;高亮{}…