BZOJ-1296: [SCOI2009]粉刷匠(dp)

作者: AmadeusChan | 来源:发表于2018-11-29 11:13 被阅读0次

题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1296

又是一道水水的DP,没什么好说的,直接上代码。

代码:

#include <cstdio>

#include <algorithm>
#include <cstring>
 
using namespace std ;
 
#define rep( i , x ) for ( int i = 0 ; i ++ < x ; )
#define down( i , x ) for ( int i = x - 1 ; i >= 0 ; -- i )
 
const int maxn = 55 , maxt = 2550 ;
 
int n , m , t , f[ maxn ][ maxn ] , dp[ maxn ][ maxt ] ;
char s[ maxn ][ maxn ] ;
 
int main(  ) {
    scanf( "%d%d%d" , &n , &m , &t ) ;
    rep( i , n ) scanf( "%s" , s[ i ] + 1 ) ;
    memset( dp , 0 , sizeof( dp ) ) ;
    rep( i , n ) {
        memset( f , 0 , sizeof( f ) ) ;
        rep( j , m ) rep( k , m ) {
            f[ k ][ j ] = f[ k - 1 ][ j ] ;
            int sum = s[ i ][ k ] - '0' ;
            down( h , k ) {
                f[ k ][ j ] = max( f[ k ][ j ] , f[ h ][ j - 1 ] + ( k - h ) - min( ( k - h ) - sum , sum ) ) ;
                sum += s[ i ][ h ] - '0' ;
            }
        }
        for ( int k = 0 ; k <= t ; ++ k ) dp[ i ][ k ] = dp[ i - 1 ][ k ] ;
        rep( j , m ) {
            int temp = 0 ;
            rep( k , m ) temp = max( temp , f[ k ][ j ] ) ;
            for ( int k = j ; k <= t ; ++ k ) {
                dp[ i ][ k ] = max( dp[ i ][ k ] , dp[ i - 1 ][ k - j ] + temp ) ;
            }
        }
    }
    int ans = 0 ; 
    for ( int i = 0 ; i <= t ; ++ i ) ans = max( ans , dp[ n ][ i ] ) ;
    printf( "%d\n" , ans ) ;
    return 0 ;
}

相关文章

  • BZOJ-1296: [SCOI2009]粉刷匠(dp)

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1296 又...

  • 绿语兵心004:我是一个快乐的粉刷匠

    我是一个粉刷匠,粉刷本领强,我要把那新房子,刷的很漂亮! 粉刷匠简单快乐,目标明确。自信,有能力。 粉刷匠是啥,微...

  • 《汤姆•索亚历险记》——马克•吐温

    《聪明的粉刷匠》 “我是一个粉刷匠,粉刷本领强,我要把那新房子,刷的更漂亮。”歌曲中的小小粉刷匠干起活来多开心,可...

  • 粉刷匠

    一刷, 两刷, 三刷, 手要端平, 厚度均匀, 满眼灰墙变白墙, 生活一丝不挂。 一刷, 两刷, 三刷, 清理灰尘...

  • 粉刷匠

    家里也衬“绘画”——白云。 多年前被楼上阴了的墙面,多年后被剩下的乳胶漆修补的意境。 我是一个充满微笑的粉刷匠。

  • 粉刷匠

    粉刷本领强 未完待续

  • 粉刷匠

  • 粉刷匠

    前几天需要粉刷一个小房间,因为上班忙,所以在小巷子里随便叫了一个粉刷匠,年纪40多岁,典型的农村汉子,憨厚...

  • 《粉刷匠》

    我是一个粉刷匠 粉刷本领强 无论什么色彩都可以被我轻松遮掩! 直到地震来临…… 一声一声靠近你 桶打翻啦!刷子丢了...

  • 粉刷匠

    我早上去市场买菜,路过一处,见一些人三三两两聚在一起唠家常、开玩笑,有的围坐一圈打扑克牌。这是等活儿的装修工人,他...

网友评论

    本文标题:BZOJ-1296: [SCOI2009]粉刷匠(dp)

    本文链接:https://www.haomeiwen.com/subject/hkvxcqtx.html