[WC 2022 Day3 zmy] Od deski do deski(dp)
设 fi:1∼if_{i}:1\sim ifi:1∼i 能否分成若干个首尾相同的区间
则有 fi=ORj<i(fj−1∧aj=ai)f_{i}=\text{OR}_{j<i}(f_{j-1}\wedge a_j=a_i)fi=ORj<i(fj−1∧aj=ai)。
这是最原始的暴力 dpdpdp,时间 O(n2m)O(n^2m)O(n2m)。
事实上,这个过程中 iii 只有选那些 fj−1=1f_{j-1}=1fj−1=1 的 aja_jaj 构成的颜色集合才能使得 fi=1f_i=1fi=1。
因此有效状态只有不同颜色集合大小和上个位置的 fff 值。
我们考虑设计只跟有效状态挂钩的 dpdpdp。
设 dpi,j,k:dp_{i,j,k}:dpi,j,k: 处理完了 [1,i)[1,i)[1,i) 的信息,有 jjj 个满足的不同颜色,且上一位( fi−1f_{i-1}fi−1 )是否为 111。
有四种转移情况:
dpi+1,j,1←dpi,j,1∗jdp_{i+1,j,1}\leftarrow dp_{i,j,1}*jdpi+1,j,1←dpi,j,1∗j
虽然 fi−1=1f_{i-1}=1fi−1=1,但 aia_iai 选取的颜色是前面 jjj 个合法位置上的任一颜色,颜色集合并未发生改变,同时有 fi=1f_i=1fi=1。
dpi+1,j,1←dpi,j,0∗jdp_{i+1,j,1}\leftarrow dp_{i,j,0}*jdpi+1,j,1←dpi,j,0∗j
虽然 fi−1=0,if_{i-1}=0,ifi−1=0,i 不可能产生贡献。但反正前面至少有 jjj 个位置满足 fk−1=1f_{k-1}=1fk−1=1 且 aka_kak 互不相同。
iii 仍然可以让 aia_iai 成为这其中任一颜色,也会使得 fi=1f_i=1fi=1。
dpi+1,j,0←(m−j)dpi,j,0dp_{i+1,j,0}\leftarrow (m-j)dp_{i,j,0}dpi+1,j,0←(m−j)dpi,j,0
fi=0f_i=0fi=0 说明 aia_iai 没有和前面的 jjj 个位置有关联,颜色是剩下的 m−jm-jm−j 种,合法颜色集合大小 jjj 也不会增。
dpi+1,j+1,0←(m−j)dpi,j,1dp_{i+1,j+1,0}\leftarrow (m-j)dp_{i,j,1}dpi+1,j+1,0←(m−j)dpi,j,1
fi=0f_i=0fi=0 但 fi−1=1f_{i-1}=1fi−1=1 这意味着,aia_iai 的颜色与前面合法的 jjj 个位置不同,但 iii 此时进入候选位置,合法颜色集合大小会 +1+1+1。
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define mod 1000000007
#define maxn 3005
int n, m;
int f[maxn][maxn][2];signed main() {scanf( "%lld %lld", &n, &m );f[0][0][0] = f[0][0][1] = 1;for( int i = 0;i < n;i ++ )for( int j = 0;j <= i;j ++ ) {( f[i + 1][j][1] += ( f[i][j][0] + f[i][j][1] ) % mod * j ) %= mod;( f[i + 1][j + 1][0] += f[i][j][1] * ( m - j ) ) %= mod;( f[i + 1][j][0] += f[i][j][0] * ( m - j ) ) %= mod;}int ans = 0;for( int i = 0;i <= n;i ++ )( ans += f[n][i][1] ) %= mod;printf( "%lld\n", ans );;return 0;
}
[WC 2022 Day3 zmy] Od deski do deski(dp)相关推荐
- 2022年全球及中国固态电解质(SSE)行业应用现状与十四五投资潜力分析报告
2022年全球及中国固态电解质(SSE)行业应用现状与十四五投资潜力分析报告 --------------------------------------- <修订日期>:2021年12月 ...
- OD使用教程7(上)- 调试篇07|解密系列
OD使用教程7(上)- 调试篇07 让编程改变世界 Change the world by program 小甲鱼觉得,掌握逆向的思维尤为重要. 所以在咱的OD使用教程中,不单会告诉你怎么去逆向这 ...
- 2022第三届全国大学生网络安全精英赛练习题(7)
全国大学生网络安全精英赛 2022第三届全国大学生网络安全精英赛练习题(7) 文章目录 全国大学生网络安全精英赛 2022第三届全国大学生网络安全精英赛练习题(7) 总结 601.在实体特征的鉴别中, ...
- 2022第三届全国大学生网络安全精英赛练习题(1)
全国大学生网络安全精英赛 2022第三届全国大学生网络安全精英赛练习题(1) 文章目录 全国大学生网络安全精英赛 2022第三届全国大学生网络安全精英赛练习题(1) 总结 1.某公司技术人员利于自己的 ...
- 2022 年全球重大经济事件盘点( I )
2022 年,全球经济正面临百年未有之大变局,接踵而至的大事件造成今年行情剧烈波动,以往的投资逻辑不断遭遇修改. 正所谓阳光之下没有新鲜事.通过对于重大事件的复盘,分析了解过往历史脉络,投资者方能温故 ...
- 2022第三届全国大学生网络安全精英赛练习题(2)
全国大学生网络安全精英赛 2022第三届全国大学生网络安全精英赛练习题(2) 文章目录 全国大学生网络安全精英赛 2022第三届全国大学生网络安全精英赛练习题(2) 总结 101.通过"计算 ...
- 2022年计算机软件水平考试信息系统项目管理(高级)练习题及答案
2022年计算机软件水平考试信息系统项目管理(高级)练习题及答案,根据最新计算机软件水平考试信息系统项目管理(高级)大纲与历年计算机软件水平考试信息系统项目管理(高级)真题汇总编写,包含计算机软件水平 ...
- 2022年计算机软件水平考试电子商务设计师(中级)练习题及答案
1.企业在选择电子商务系统时,主要遵循的原则不包括 (B) A. 尽量开放.可扩充 B. 尽量采用新技术 C. 符合企业信息化的主流技术 D. 有较好的市场占有率 2.关于网页中 DIV 文本对齐的设 ...
- 2022第三届全国大学生网络安全精英赛练习题(5)
全国大学生网络安全精英赛 2022第三届全国大学生网络安全精英赛练习题(5) 文章目录 全国大学生网络安全精英赛 2022第三届全国大学生网络安全精英赛练习题(5) 总结 401.社会工程学攻击是利用 ...
最新文章
- iOS 自定义相机,带水印!
- python3远程连接MySQL
- ASP.NET中使用Global.asax文件
- ros知识:关于catkin_init_workspace不能执行的错误
- 2.3.2 spring属性注入-注解注入-半注解注入-后序
- Python---多任务介绍以及Thread的基本使用
- 把所有的谎言献给你β
- centos7 搭建keepalived+Nginx+tomcat
- 搜狗AI助力居理新房打造智能售房新模式
- python初心记录一
- selenium2.0(WebDriver) API - 转载自:http://www.cnblogs.com/puresoul/p/3477918.html
- DoraHacks的笔记
- 2016.05.17开通自己的博客
- php 养宠物,养宠物必知的十个知识,关爱宠物注重细节
- 软件工程师的职业建议
- 深度学习在音频信号处理领域中的进展(截止至2019年5月)
- Python三维绘图:马鞍面
- 生成对抗网络GANs
- 中国矿业大学计算机学院刘一凡,中国矿业大学计算机学院2013级国家奖学金获得者刘一凡采访记...
- pb 修改数据窗口种指定字段位置_PB数据窗口对象之字段的修改属性