第二十八次

高情商:题目未按难度排序,请自行决定开题顺序

低情商:都是紫题,自己看着办吧

A

ai,0/1 表示第 i 层的两个门,fi,0/1 表示从起点走到第 i 层的两个门的最短路,

则有 fi,j=mink=0ifi1,k+d(ai1,k,ai,j),其中 d(ai1,k,ai,j) 表示 ai1,kai,j 的最短路,这个容易 O(1) 求出。

每次 O(n) 地跑一遍 DP 复杂度太高,考虑动态 DP,则有

[fi1,0fi1,1]×[d(ai1,0,ai,0)d(ai1,0,ai,1)d(ai1,1,ai,0)d(ai1,1,ai,1)]=[fi,0fi,1]

×(min,+) 矩乘,线段树维护区间矩阵乘积即可。

B

fi 表示第 i 块玻璃向下发出的光,gi 表示第 i 块玻璃向上发出的光,

则有 fi=aifi1+bigi+1,gi=bifi1+aigi+1

Δfi=fifi1,Δgi=gifi1,则有 Δfi=ai+bigi+1fi1=ai+biΔgi+1fifi1=ai+biΔgi+1Δfi,即 fi=ai1biΔgi+1

且有 Δgi=bi+aigi+1fi1=aiΔgi+1fifi1=aiΔgi+1Δfi

倒序递推 Δf,Δg 即可。

C

发现得到的队列即为添加序列的前缀最大值序列,于是考虑怎样的前缀最大值序列 s 是合法的,

考虑 s 的每一位何时取到最小值,可以发现把原序列从小到大排序得到 {an} 作为添加序列时,可以取到 si=ai

所以 s 不降,且 siais 合法。设 fi,j 表示 s 填到第 i 位,最后一位为 j 的方案数,

则有 fi,j=k=1jfi1,k|jai,前缀和优化即可。

D

答案即为放 n 个互不攻击的车,阴影不能放的方案数。

fi 表示在阴影里放 i 个车的方案数,

则钦定某 i 个车放在阴影里,剩下随便放的方案数有 fi(ni)! 种,

考虑容斥,则答案为 i=0n(1)ifi(ni)!,问题变为算 f

同行同列的车不能选,因此 fi 即上图大小为 i 的独立集个数。

把这些链连起来,则 fi 即在连出的链上选 i 个点,连接处可以相邻,其他位置不能相邻的方案数,容易 DP。

posted @   Jijidawang  阅读(8)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示