您的位置:首页 > 其它

SRM 600

2013-12-22 09:37 387 查看
250:

题意:给你50个数,问你最少去掉多少数能使得剩下的数不可能具备子集S,OR起来为goal

如果一个数不是goal的子状态,那么我们没必要删除他,所以我们只关心goal的子状态的数

1:如果所有的数OR起来都没有到达goal,那么就是0

2:每个数都会贡献一些位,去掉1的个数最少的那一位就好了

600:

题意:给你一个14*14的01矩阵,现在要反转最少的网格使得矩阵至少有needrow行回文以及needcol列回文

稍微算了下,如果枚举行再枚举列的话太过于暴力(好像也还行?)

反正让我们开始dp吧

首先枚举想边dp边考虑两个因素,几乎是不太可能的,那么就暴力枚举哪些行是回文的,去掉一个限制因素,然后开始对列进行dp

dp的过程写的不好的话会有各种讨论,我就是属于写的不好的那种

每次dp  c 与 m-1-c两列,然后枚举两列回文的状态共有四种情况

还要注意如果某些行是回文的,要强制考虑进去



https://github.com/becauseofyou/Contests/tree/master/topcoder/srm600
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: