zoukankan      html  css  js  c++  java
  • 【HDU 3183】 字符串处理

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3183

    题目大意:给你一串数字,要你删去n个数字,使得删去n个数字后数值最小。

    解题思路:

         蛋疼的水题,搞了我一天。开始是暴力模拟,各种测试对但就是过不了。所以换了个写法。

         思路主要是这样的: 因为需要你删除m个数使得结果最小,所以每次对字符串进行一次遍历,从前往后,只要a[i]>a[j] (j的位置为i后面未标记的第一个)  则对a[i]进行一次标记(赋赋值)将其除外,进行n次遍历,这样就删除了n个数字。因为删除的都是和后面比较相比下大的,所得结果当然就最小了。

     

     

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <algorithm>
     5 using namespace std;
     6 
     7 int main()
     8 {
     9     int  n, i, j, k;
    10     char  f[1024];
    11     int   a[1024];
    12     while(scanf("%s%d",f,&n)!=EOF)
    13     {
    14         int len=strlen(f);
    15         memset(a,0,sizeof(a));
    16         for(i=0; i<len; i++)
    17             a[i]=f[i]-'0';
    18         for(i=0; i<n; i++)
    19             for(j=0; j<len; j++)
    20             {
    21                 if(a[j]>0)
    22                 {
    23                     for(k=j+1; k<len; k++)
    24                     {
    25                         if(a[k]>=0) break;
    26                     }
    27                     if(a[j]>a[k])
    28                     {
    29                         a[j]=-1;
    30                         break;
    31                     }
    32                 }
    33             }
    34         int flag=0;
    35         for(i=0; i<len; i++)
    36         {
    37             if(a[i]<0||(!flag&&a[i]==0))
    38             {
    39                 continue;
    40             }
    41             else
    42             {
    43                 flag=1;
    44                 printf("%d",a[i]);
    45             }
    46         }
    47         if(!flag)
    48             cout << 0;
    49         cout << endl;
    50     }
    51     return 0;
    52 }
  • 相关阅读:
    cookie
    sql 语句
    页面宽高
    分页
    asp.net中如何防止用户重复点击提交按钮
    小试简单工厂模式之简单计算器
    用函数实现交换的疑问
    结构体变量输入输出的问题
    scanf函数输入float数需要注意的问题
    oracle学习手记(1)
  • 原文地址:https://www.cnblogs.com/kane0526/p/2758018.html
Copyright © 2011-2022 走看看