• hdu 1735 字数统计


    这道题是到贪心的题目,首先用ans记录下所有的0的个数,然后尽量去掉更多的0,剩下的0的个数就是最少的字数。首先想到最后一行的0的个数可以减掉,然后就是m行开头的两个0可以减掉。然后思考最多还可以减掉多少个0?当然是考虑每段的结尾处0的个数,因为还有m-1行的结尾可以减,所以就进行排序,减掉最大的m-1个段落结尾0。

    #include"iostream"
    #include"stdio.h"
    #include"algorithm"
    #include"string.h"
    #include"queue"
    #include"cmath"
    using namespace std;
    int a[10005][105];
    int n,l,m;
    int cou[10005];//记录每段末尾零的个数
    bool cmp(const int a,const int b)
    {
        return a>b;
    }
    int main()
    {
        while(scanf("%d%d%d",&n,&l,&m)==3)
        {
          int i,j,k,ans;
          ans=0;//记录矩阵中所有0的个数
          for(i=0;i<n;i++)
             for(j=0;j<l;j++)
              {
                  cin>>a[i][j];
                  if(!a[i][j]) ans++;
              }
           k=0;ans-=2*m;
           for(i=l-1;i>=0;i--)
           {
               if(!a[n-1][i]) ans--;
               else break;
           }
           for(i=1;i<n;i++)
           {
               int c=0;
               if(!a[i][0]&&!a[i][1])
               {
                   for(j=l-1;j>=0;j--)
                   {
                       if(!a[i-1][j]) c++;
                       else break;
                   }
                   cou[k++]=c;
               }
           }
           sort(cou,cou+k,cmp);
           for(i=0;i<m-1;i++)
           {
               ans-=cou[i];
           }
           cout<<ans<<endl;
        }
        return 0;
    }
    View Code
  • 相关阅读:
    easy ui 常用控件配置
    oracel 查询语句
    .Net 取树形结构的数据
    Asp.Net Core File的操作
    js 页面技巧
    ASP.NET Core 文件上传
    ASP.NET EF实体主外键关系
    ASP.NET MVC 后台传值前端乱码解决方案 富文本Ueditor编辑
    手机访问网站自动跳转到手机版
    Ecshop布局参考图
  • 原文地址:https://www.cnblogs.com/acm-jing/p/4333404.html
Copyright © 2020-2023  润新知