「Note」trick(持续更新)

发布时间 2023-04-19 20:00:50作者: cc0000

cc0000想获得一些智慧!

cc0000想记住更多的trick

  1. 人家想让你查合法的排列数量时:
    考虑在状态里设计“总共已经放了i个数,最后一个数在当前状态下的排名”(人在飞机上,例题忘了)
    考虑在一个n x n 的网格图上,横行代表数字大小,纵列代表排名,那么就相当于在这张图里放n个车(中国象棋吧,国际象棋至今不会)使得它们互相不能攻击。就是同一行或者同一列有且仅有一个车。如果限制每一个子不能在哪个位置上,只需要标记对应的格子就行(AGC哪个题忘了)

  2. 01trie有个喵喵性质:假如需要树上所有数字加一,就是反着建树,(就是数位越低越靠近根)然后交换左右儿子,并打上tag,只往交换后是0的儿子那边下传tag(我觉得这个很显然啊,但是好像会忘)(哪年省选题还有一个ynoi叫funsion tree。)

  3. 一堆东西在经过什么鬼畜操作之后问你公约数不等于1的。只需要判断公约数是否能是一个质数的倍数就行。这样如果涉及到的质数不算太多就可以枚举质数了

  4. 我记得有个AGC一步转化之后变成两条链的问题,其中一条可以走到另外一条,然后成环是不合法的。这种是设了两维状态,就是i表示左链当前延伸的长度,且左链必须延伸到右面去了,j表示右当前的长度,这样成没成环就好判断了

  5. 图上把一条边缩成一个点可以转化成删边了,并且把左右两边的点赋成相同的点权

  6. 在树上删边,就想成计排列,再设一维表示已经删掉(在排列中放入)了几条边,子树合并的时候和树形背包一样

  7. 当每一样都集齐时结束,求花费时间的期望。转化成,每一样东西都集齐时,花费时间期望越大Max。然后minmax容斥一下,变成第一个集齐的花费时间的期望

  8. 一些判断是否相等的时候可以用哈希。哈希的话有时候可以直接 rand 权值。


upd on 2023/04/16

我上飞机之前没有下载游戏或者电影,即使下载了也不行,因为6bit坐我旁边

也没准可以,因为6bit休眠了好久(如图)【数据删除】