Shiritori

[ABC278F] Shiritori

首先想到单词只跟首尾有关,就只需要记录首尾了。

然后就想到了直接爆搜。

爆搜

发现赛时的数据水爆了,被赛后的数据卡了。

然后我考虑到可以用二进制表示 st,这样就可以避免掉枚举 1n,而只是枚举未选择的。

优化1

容易发现,极限数据加速了很多,但是还是过不去。

此时既然用了二进制状态,又有了上次结束的字母,那可以想到什么?

状态压缩!令 f[lst][state] 表示上个字母是 lst,状态是 state(每一位的 1 表示未选,0 表示已选)。

状态数只有 26(2N1),完全可以过。

AC

发现优化力度还是相当大的。

本文作者:wscqwq

本文链接:https://www.cnblogs.com/wscqwq/p/17519312.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   wscqwq  阅读(17)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起