首页 > 其他分享 >【字符串,哈希】【Yandex】Yandex7736

【字符串,哈希】【Yandex】Yandex7736

时间:2023-07-07 10:23:04浏览次数:41  
标签:对称点 矩阵 Yandex7736 Cz Yandex 哈希 平面 Ax

2023.6.30 Problem Link

定义一个串 \(S\) 是好的,当且仅当 \(S\) 可以不断消去相邻两个相同字符直至消空。给定一个长为 \(n\) 的字符串 \(s\),求有多少个有序对 \((i,j)\) 满足 \(s_i\neq s_j\) 且交换 \(s_i,s_j\) 后 \(s\) 是好的。


技巧:镜面对称矩阵哈希,\(A^2=I\)

考虑哈希,给每种字符赋一个特殊的矩阵,使得相邻两个相同的字符乘起来可以变成 \(I\) 然后消掉。后面只需要一个猫树分治和一个哈希表即可,不是这里的重点。这里只提怎样构造这么一个矩阵。

考虑三维空间中的镜面对称。在三维空间中随一个过原点的平面 \(Ax+By+Cz=0\),那么点 \((a,b,c)\) 的对称点是形如三维向量 \((a,b,c)\) 左乘上一个矩阵 \(A\),由于 \((a,b,c)\) 的对称点的对称点一定是自己,所以 \(AA=I\) 一定成立。

考虑怎么算平面 \(Ax+By+Cz=0\) 对应的矩阵 \(A\)。平面 \(Ax+By+Cz=0\) 的法向量为 \((A,B,C)\),所以点 \((a,b,c)\) 在平面上的投影一定形如 \((At+a,Bt+b,Ct+c)\),代入得 \((A^2+B^2+C^2)t+Aa+Bb+Cc=0\)。

解得 \(t\) 之后可以很容易求出 \((a,b,c)\) 的对称点,矩阵即可求出。

标签:对称点,矩阵,Yandex7736,Cz,Yandex,哈希,平面,Ax
From: https://www.cnblogs.com/Charlie-Vinnie/p/17534109.html

相关文章

  • 算法学习day06哈希表part01-242、349、202、1
    packageSecondBrush.Hash;/***242.有效字母异位词*现在看到这个题目能想到怎么做,但是具体不知道怎么写*大致思路自己先描述一下:*就是建立一个hash表,然后遍历s,写进表中,遍历t,减去对应的数*hash表就可以理解为数组*/publicclassValidAnagram_242{publi......
  • 算法学习day07哈希表part02-454、383、15、18
    packageSecondBrush.Hash;importjava.util.HashMap;importjava.util.Map;/***454.四数相加II*给你四个整数数组nums1、nums2、nums3和nums4,数组长度都是n,请你计算有多少个元组(i,j,k,l)能满足:*0<=i,j,k,l<n*nums1[i]+nums2[j]+nums3[k......
  • 字符串哈希
    目录字符串哈希例题字符串哈希我们定义一个把字符串映射到整数的函数f,这个f称为是Hash函数我们希望这个函数f可以方便地帮我们判断两个字符串是否相等注意哈希冲突!将Hash函数值一样但原字符串不一样的现象称为哈希冲突。例题P3370【模板】字符串哈希//>>>Qian......
  • 可哈希与不可哈希
    python中,可以简单理解为:可哈希的数据类型,即不可变的数据结构(数值类型(int,float,bool)字符串str、元组tuple、自定义类的对象)。不可哈希的数据类型,即可变的数据结构 (字典dict,列表list,集合set)。......
  • 一致性哈希的设计理念
    首先看一个最简单的hash函数#defineHASH_RANGE5intsimple_hash(intkey){returnkey%HASH_RANGE}通过调用simple_hash对5、8、9三个值进行哈希,结果如下:simple_hash(5)=0simple_hash(8)=3simple_hash(9)=4在实际应用中,HASH_RANGE是代表着一定的实际意义的,比如......
  • 局部敏感哈希LSH(SimHash与MinHash)
    SimHash1.算法思想假设我们有海量的文本数据,我们需要根据文本内容将它们进行去重。对于文本去重而言,目前有很多NLP相关的算法可以在很高精度上来解决,但是我们现在处理的是大数据维度上的文本去重,这就对算法的效率有着很高的要求。而局部敏感hash算法可以将原始的文本内容映射为......
  • 浅谈字符串哈希
    哈希HASH哈希是对于字符串的一种操作。在日常的百度搜索什么的都是根据关键字来查找,我们可以利用hash来加速这个过程。哈希的思想哈希其实是所有字符串操作中,最简单的操作了。哈希的过程,其实可以看作对一个串的单向加密过程,并且需要保证所加的密不能高概率重复,通过这种方式......
  • 一致性哈希算法
    请求和后端ip地址计算hash值%2^32。把请求转给按顺时针找到的后端IP。如果后端IP挂了,原本转给其他后端IP的请求不变。为了增强均衡性,可以增加虚拟节点。参考资料nginx负载均衡/一致性哈希......
  • [Leetcode] 0706. 设计哈希映射
    706.设计哈希映射点击跳转至leetcode题目描述不使用任何内建的哈希表库设计一个哈希映射(HashMap)。实现MyHashMap类:MyHashMap()用空映射初始化对象voidput(intkey,intvalue)向HashMap插入一个键值对(key,value)。如果key已经存在于映射中,则更新其对应的值v......
  • 考前复习——字符串哈希与哈希表
    点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defineN1005#defineULLunsignedlonglong#defineBase13331intn;ULLh[N][N],q[N];charch[N][N];inlineintread(){ intx=0; boolf=1; charch=getchar(); for(;!isdigit(ch);ch=getcha......