该文被密码保护。 阅读全文
该文被密码保护。 阅读全文
摘要:
传送门 先考虑如果只有一个栈,哪些情况是不合法的。 我们会发现这样的情况就是不合法的,因为前面那个一定会被中间那个高的抵住。 如果有这样的情况,那么中间那个数就不可以和前面那个数放在一个栈中。 可以预处理出一个后缀最小值,判断这样的i,j,然后二分图染色看是否会矛盾。 如果不矛盾的话我们还要输出如何 阅读全文
摘要:
传送门 唔感觉这几天换根用的好多啊,所以换根dp还是打一下好了。(虽然觉得一道题不大够的亚子) 所以大佬们有什么换根好题可以推荐一下的嗷! 这道题因为对于每一个点都要统计答案,所以要换根。 我们先考虑对于一个根我们怎么求出答案。 因为每个点到根的路径上只能有一条不良道路。 设f[i]为以i为根的子树 阅读全文
摘要:
传送门 这道题还是打一下,毕竟也是一道比较经典的题。 思想值得学习:求点两两之间的距离和不如转化成看一条边会对哪些点对做出贡献。 下面以黑点为例,白点同理。 那么对于一条边(x,y) 根据乘法原理:它对黑点距离的贡献即为y子树内的黑点点数 * y子树外的黑点点数。 于是我们就要对点分配哪些点为黑点, 阅读全文
摘要:
传送门 被几个数整除,等价于被他们的lcm整除。 于是想到设dp[i][j][k]表示到第i位,当前的数为j,lcm为k的数的个数。 这样空间肯定无法接受。考虑优化。 我们发现1,2,3,4,5,6,7,8,9的lcm不过是2520,我们每次把j%一下2520不会影响答案。 然后对于k这一维,直接存 阅读全文
摘要:
传送门 B和C都很小,于是想到状压。 但状压的难点在于一个人吃饭的顺序会和其前面的人以及后面的人都有关。 幸而最多只会和后七个人有关,我们考虑把自己以及后七个人压成一个状态。 然后我们要知道上一次吃饭的人是谁,所以也存入状态中。只和前后七个人有关。 设dp[i][j][k]为第1个人到第i-1个人已 阅读全文