21.2.23习题

先序遍历与后序遍历

51Nod - 1832

当且仅当一个点只有一个儿子时, a n s ans ans乘上 2 2 2
特判就是 a [ l 1 ] = = b [ r 2 ] a[l1]==b[r2] a[l1]==b[r2],然后往下递归即可


计分板

51Nod - 1231

竞赛图的性质:任意 k k k个人的出度和 ≥ k ( k − 1 ) 2 \geq\frac{k(k-1)}2 2k(k1)(也就是排序后 S [ k ] ≥ k ( k − 1 ) 2 S[k]\geq\frac{k(k-1)}2 S[k]2k(k1))
大力 d p [ i ] [ j ] [ k ] dp[i][j][k] dp[i][j][k],处理到了出度为 i i i的人,一共用了 j j j个人,出度和为 k k k,转移时枚举当前选 d l t dlt dlt个出度为 i i i的人,用性质判断一下可行性即可


B君的梦境

51Nod - 1626

显然是矩阵快速幂
容易理解的四维空间:把很多个立方体排成一排,对一段立方体做同样的操作

2 2 2在第 4 4 4维,相当于在相邻的两个立方体的同一个位置放一个方块
2 2 2在其他维,相当于放一个 1 ∗ 1 ∗ 2 1*1*2 112的立方体

直接大力状压 2 12 2^{12} 212表示一个立方体的空位情况,然后发现有很多相同的状态(翻转、旋转、镜像之类的),最终化简只剩下95个状态

具体来讲, f [ i ] [ S ] f[i][S] f[i][S]表示第 i , i − 1 i,i-1 i,i1个立方体的 S S S是连起来的,那么转移系数的意义就是 f [ i ] [ S ] → f [ i + 1 ] [ S ′ ] f[i][S]\rarr f[i+1][S'] f[i][S]f[i+1][S] i , i − 1 i,i-1 i,i1 S S S是连起来的, i + 1 , i i+1,i i+1,i S ′ S' S是连起来的,所以 i i i中剩余的格子要自己填,这个方案数再写个状压dp预处理一下即可


Number of Components

CodeForces - 1303F

如果只考虑每次操作增加的联通块,很好处理;难搞的是减少的联通块个数

换个思维,把操作序列倒过来,那么每一步增加的联通块个数实际上就是原操作序列这一步减少的联通块个数


Sum of Prefix Sums

CodeForces - 1303G

一眼点分治
问题转化为拼两条路径: S 1 + S 2 + S ⋅ k S1+S2+S\cdot k S1+S2+Sk S 1 , S 2 S1,S2 S1,S2为两条路径分别的答案, S S S为往上路径的权值和, k k k为往下路径的长度)

然后再套一个李超维护最大值

O ( n l o g 2 n ) O(nlog^2n) O(nlog2n)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值