zoukankan      html  css  js  c++  java
  • hdu 1735(贪心) 统计字数

    戳我穿越:http://acm.hdu.edu.cn/showproblem.php?pid=1735

    对于贪心,二分,枚举等基础一定要掌握的很牢,要一步一个脚印走踏实

    这是道贪心的题目,要有贪心的意识。

    首先将所有为0的地方统计,因为是求最小的字数,所有最后一行后面的0可以看为空格直接减掉,

    因为有m段(一定包括第一行),再减去m*2,最后枚举每行,将至少前两个为0的上一行的最后有多少

    的0统计起来排序,再依次减去前m-1个大的,这样就保证了得到的答案是符合条件中最小的

    code

     1 #include<cstdio>
     2 #include<algorithm>
     3 using namespace std;
     4 int yj[10001][101],lsy[10001];
     5 bool cmp(int x,int y){return x>y;}
     6 int main()
     7 {
     8     int n,m,x,sum,ans,i,j,k,flag;
     9     while (~scanf("%d %d %d",&n,&m,&x))
    10     {
    11         sum=0;
    12         for (i=1;i<=n;i++)
    13         {
    14             for (j=1;j<=m;j++)
    15             {
    16                scanf("%d",&yj[i][j]);
    17                if (!yj[i][j])
    18                   sum++;
    19             }
    20         }
    21         //printf("%d
    ",sum);
    22         for (i=m;i>=1;i--)
    23         {
    24             if (!yj[n][i]) sum--;
    25             else break;
    26         }
    27         //printf("%d
    ",sum);
    28         k=1;
    29         for (i=2;i<=n;i++)
    30         {
    31             ans=0;flag=0;
    32             if (!yj[i][1]&&!yj[i][2])
    33             {
    34                 flag=1;
    35                 for (j=m;j>=1;j--)
    36                 {
    37                     if (!yj[i-1][j])
    38                         ans++;
    39                     else
    40                         break;
    41                 }
    42             }
    43             if (flag)
    44                lsy[k++]=ans;
    45         }
    46         sum-=2*x;x--;
    47         /*for (i=1;i<k;i++)
    48             printf("%d ",lsy[i]);
    49         printf("
    ");*/
    50         sort(lsy+1,lsy+k,cmp);
    51         for (i=1;i<=x;i++)
    52             sum-=lsy[i];
    53         printf("%d
    ",sum);
    54     }
    55     return 0;
    56 }
  • 相关阅读:
    索引器
    异常
    C#各版本
    构造函数
    值类型和引用类型
    面向对象聊天机器人
    linux 系统快捷键
    linux 系统常用设置
    linux 系统介绍
    linux 命令学习.txt
  • 原文地址:https://www.cnblogs.com/JJCHEHEDA/p/4682880.html
Copyright © 2011-2022 走看看