zoukankan      html  css  js  c++  java
  • HDU 3183 A Magic Lamp

    http://acm.hdu.edu.cn/showproblem.php?pid=3183

    思路:如果没有别的可能的话,只能是最后的N位。但是前面的可能有比N位中的首位更小的数字m,然后找到这个更小的。再从m开始到最后N-1位找N-1位数字的首数字。

    View Code
     1 #include <stdio.h>
     2 #include <string.h>
     3 #define maxn 1005
     4 char s[maxn];
     5 int ans[maxn];
     6 int main()
     7 {
     8     int i, l, n, len, d, end, mark;
     9     char now;
    10     while(~scanf("%s%d",s,&d))
    11     {
    12         len = strlen(s);
    13         n = len - d;
    14         l = 0;
    15         i = 0;
    16         mark = i;
    17         end = len - n;
    18         while(n--)
    19         {
    20             now = s[i]; 
    21             for(; s[i]!='\0' && i <= end; i++)
    22             if(s[i] < now)
    23             {
    24                 mark = i;
    25                 now = s[i];
    26             }
    27             ans[l++] = now - '0';
    28             i =++mark;
    29             end ++;
    30         }
    31         for(i = 0; i < l; i++)
    32         if(ans[i]!=0) break;
    33         if(i == l) printf("0");
    34         else{
    35             for(; i < l; i++)
    36             printf("%d",ans[i]);
    37         }
    38         printf("\n");
    39     }
    40     return 0;
    41 }
    42  

    等下写下RMQ的算法。

  • 相关阅读:
    矩阵图
    博客园评价
    团队冲刺
    团队冲刺
    第二阶段团队冲刺
    团队博客
    团队冲刺
    总结会议
    会议10
    会议09
  • 原文地址:https://www.cnblogs.com/yoru/p/2668538.html
Copyright © 2011-2022 走看看