每日心得2023.2.27

补了昨天比赛的题

知道了set(集合)容器是没有重复元素的,可以去重

set> used({{0,0}})   //用set的存点方法

for(auto c:s)  //遍历字符串的每个字母

单个字母用单引号  

if( used.find({x,y}) != used.end() )  //这个点重复了

used.insert({x,y})  //插入这个点

^ 亦或运算

二进制中每个位置  相同为0,不同为1

两大性质:1.任何数亦或0都等于它自己

                   2.任何数亦或自己都为0

满足交换律

x^=6 等价于x=x^6

当一个题给很多数要找出不是配对的那唯一的一个数时,可以算全部数的亦或  循环读入每个数(x)后 ans^=x

二进制要移动位置相加时,比如一个32位的二进制要将前16位和后16位互换,可以直接用左移和右移    !!!

<<左移,>>右移

ans=(x>>16)+(x<<16)

你可能感兴趣的:(c++)