zoukankan      html  css  js  c++  java
  • JZ高中OJ 1035. [SCOI2009]粉刷匠

    Description

    windy有 N 条木板需要被粉刷。
    每条木板被分为 M 个格子。
    每个格子要被刷成红色或蓝色。
    windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色。
    每个格子最多只能被粉刷一次。
    如果windy只能粉刷 T 次,他最多能正确粉刷多少格子?
    一个格子如果未被粉刷或者被粉刷错颜色,就算错误粉刷。
     

    Input

    第一行包含三个整数,N M T。
    接下来有N行,每行一个长度为M的字符串,'0'表示红色,'1'表示蓝色。

    Output

    输出一个整数,表示最多能正确粉刷的格子数。
     

    Sample Input

    3 6 3
    111111
    000000
    001100
    

    Sample Output

    16
     

    Data Constraint

     
     

    Hint

    100%的数据,满足 1 <= N,M <= 50 ; 0 <= T <= 2500 。
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 inline int read()
     4 {
     5     int x=0;char ch=getchar();
     6     while(ch<'0'||ch>'9')ch=getchar();
     7     while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
     8     return x;
     9 }
    10 int n,m,t,ans;
    11 int sum[55];
    12 int f[55][55],dp[55][2505];
    13 char s[60];
    14 int main()
    15 {
    16     n=read();
    17     m=read();
    18     t=read();
    19     for(int i=1;i<=n;i++)
    20     {
    21         scanf("%s",s+1);
    22         for(int j=1;j<=m;j++)
    23             sum[j]=sum[j-1]+(s[j]=='1');
    24         for(int j=1;j<=m;j++)
    25             for(int x=1;x<=m;x++)
    26            {
    27                 f[x][j]=0;
    28                 for(int y=0;y<x;y++)
    29         {
    30             int tmp=sum[x]-sum[y];
    31             f[x][j]=max(f[x][j],f[y][j-1]+max(tmp,x-y-tmp));
    32         }
    33             }
    34         for(int j=1;j<=t;j++)
    35         {
    36             int tmp=min(m,j);
    37             for(int k=1;k<=tmp;k++)
    38                 dp[i][j]=max(dp[i][j],dp[i-1][j-k]+f[m][k]);
    39         }
    40     }
    41     for(int i=1;i<=t;i++)
    42         ans=max(dp[n][i],ans);
    43     printf("%d",ans);
    44     return 0;
    45 }
  • 相关阅读:
    Linux Core Dump
    ODP.NET Managed正式推出
    获取EditText的光标位置
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1028 数的计算
  • 原文地址:https://www.cnblogs.com/dsanying/p/11329226.html
Copyright © 2011-2022 走看看