G 、Zayin and Count
这个题,额不算难题。只是有一个需要注意的地方,在对x进行数位dp的时候,0这个数字有可能可以用,但也有可能不可以用。如果可以用,那就正常dp,但如果不可以用的话,比如,如果对x = 23 dp,但是发现数位dp只能处理两位数的,对于2 ,3,啥的都不能处理,所以在dp之后,还要重新特判一下。处理完之后,就是模拟了。
#pragma GCC optimize("Ofast","unroll-loops","omit-frame-pointer","inline")
#pragma GCC optimize(3 , "Ofast" , "inline")
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization("unroll-loops")
#include
#include
#include
#include
#include
#include
J、Zayin and Tree
暴力点分治,对于以某个重心为根节点的情况,分两种情况进行套路:一个路径以根节点为一端点,这种情况直接往下枚举
另一种情况:路径跨过根节点
P - R + L , 分开写就是dx- R + dy + L + 1 ,dx是重心节点到x的距离,因为要跨过根节点所以再加1
#pragma GCC optimize("Ofast","unroll-loops","omit-frame-pointer","inline")
#pragma GCC optimize(3 , "Ofast" , "inline")
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization("unroll-loops")
#include
#include
#include
#include
#include
#include