team2012-D3-2A

从 Trac 迁移的文章

这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。

原文章内容如下:

=== 0044 ===
{{{
    首先预处理出每一行所有可能的mask状态,存在vector里面
    然后进行dp,我是用两个map来存储dp的状态,map<int m1,int m2>:表示上两行的状态分别为m1和m2的时候,能放的starfruit最大值
    然后转移时从遍历整个map,把新的状态存储在另一个map里面
    本来使用queue实现的,但是发现许多状态重复进队多次,造成queue的size很大,跑n=100的数据,size可以达到10000
    但其实map里面不重复的状态只有300~500
    PS:位运算处理时如果是复制粘贴的话要小心-__-
}}}

0044

 首先预处理出每一行所有可能的mask状态,存在vector里面
    然后进行dp,我是用两个map来存储dp的状态,map<int m1,int m2>:表示上两行的状态分别为m1和m2的时候,能放的starfruit最大值
    然后转移时从遍历整个map,把新的状态存储在另一个map里面
    本来使用queue实现的,但是发现许多状态重复进队多次,造成queue的size很大,跑n=100的数据,size可以达到10000
    但其实map里面不重复的状态只有300~500
    PS:位运算处理时如果是复制粘贴的话要小心-__-