博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[THUPC2018]生生不息(???)
阅读量:5123 次
发布时间:2019-06-13

本文共 406 字,大约阅读时间需要 1 分钟。

SB题,写来放松身心。

首先 $n,m\le 5$,这是可以打表的。

本地怎么对于一个 $n,m$ 求答案?此时虽然复杂度不需要太优,但是还是得够快。

一个想法是枚举每个初始状态,不停模拟。因为总状态数只有 $O(2^{nm})$ 种,所以会出现周期。

 如果压缩状态,复杂度是 $O(4^{nm}nm)$。太大了。

但是,虽然一个状态的周期可能很长,但是如果一起考虑所有状态呢?

对于每个状态 $S$,直接模拟它下一轮会变成啥(设为 $T$)。那么连一条 $S\rightarrow T$ 的边。

那么就是问有多少个边走不到 $0$。

可以建反图,计算从 $0$ 能走到多少个点。

复杂度 $O(2^{nm}nm)$。除了 $n=m=5$ 的点大概要跑 10s,其它的都可以 1s 出。

代码就没必要放了。

 

转载于:https://www.cnblogs.com/1000Suns/p/11173116.html

你可能感兴趣的文章
redis 批量删除操作
查看>>
Python爬虫爬取美剧网站
查看>>
SQL Server执行计划那些事儿(3)——书签查找
查看>>
Nhibernate 过长的字符串报错 dehydration property
查看>>
Deque - leetcode 【双端队列】
查看>>
ubuntu下sogou突然不能用
查看>>
Linux 普通用户拿到root权限及使用szrz命令上传下载文件
查看>>
联合体union
查看>>
人物角色群体攻击判定(一)
查看>>
JavaWeb学习过程 之c3p0的使用
查看>>
MySql Delimiter
查看>>
一步步学习微软InfoPath2010和SP2010--第九章节--使用SharePoint用户配置文件Web service(2)--在事件注册表单上创建表单加载规则...
查看>>
使用客户端对象模型读取SharePoint列表数据
查看>>
NYOJ 289 苹果(01背包)
查看>>
【啃不完的算法导论】- 动态规划 - 最长公共子序列(概念篇)
查看>>
Day39:threading模块、ThreadLocal
查看>>
[Leveldb源码剖析疑问]-block_builder.cc之Add函数
查看>>
POJ 1328 Radar Installation 贪心
查看>>
约法三章
查看>>
canvas合成图片 圣诞节新技能戴帽
查看>>