摘要: https://ac.nowcoder.com/acm/contest/11168/F 先考虑如何求给出的n个数有多少个不同的子序列 用f[i]表示以i为最后一个数字的子序列的个数 f[i]= 1 + ∑ f[j] (1<=j<=k) 意为在之前求出的所有子序列最后加上x,都可以构成一个新的>1的子 阅读全文
posted @ 2021-03-15 14:38 TRTTG 阅读(169) 评论(0) 推荐(0) 编辑
摘要: https://ac.nowcoder.com/acm/contest/11168/E 如果没有区间翻转操作 那就直接枚举区间左或右端点, 因为要求数不能重复,每个数字又都是2的幂 所以固定一个端点后,区间长度是log(值域)级别的,这里就是24 可以翻转一个区间,相当于可以选任意2个不相交的区间 阅读全文
posted @ 2021-03-15 14:09 TRTTG 阅读(143) 评论(0) 推荐(0) 编辑
摘要: https://ac.nowcoder.com/acm/contest/11168/D 借助这个公式: 有重复集合的排列: 定理:设S是多重集合,他有k种不同类型的对象,每一种类型的有限重复数是n1,n2,n3,…nk。设S的大小为n=n1+n2+n3+…nk。则S的n排列数目为n!/(n1!n2! 阅读全文
posted @ 2021-03-15 13:52 TRTTG 阅读(160) 评论(0) 推荐(0) 编辑
摘要: https://ac.nowcoder.com/acm/contest/11168/C 类似于dp求树的直径 在以x为根的子树内,求x的子树里的最大和次大的x的子树的子树和,要求最大和次大不能在x的同一个子节点里。 每次以子节点的最大子树和更新x的最大子树和 最后再用x的子树和更新x的最大子树和 # 阅读全文
posted @ 2021-03-15 13:38 TRTTG 阅读(63) 评论(0) 推荐(0) 编辑