• hdu 1986


     地址:http://acm.hdu.edu.cn/showproblem.php?pid=1986

    题意:按要求把字母或空格字符串扩展成5个01字符表示的字符串以后,缠绕放置在一个r*c的矩阵里。最后一排一排输出。

    mark:各种wa。后来才发现是输入的问题。当字符串长度为0的时候,我本来用的是scanf的正则输入,结果事实证明不行。。。

    另外用来放置扩展以后的字符串的字符数组ss一开始忘记清0也wa了一次。

    代码:

     1 # include <stdio.h>
     2 # include <string.h>
     3 
     4 
     5 char str[100] ; // less than 80
     6 char ss[450] ; //less than 400
     7 char out[25][25] ;
     8 int vis[25][25] ;
     9 int r, c ;
    10 
    11 
    12 void load(char *s, char ch)
    13 {
    14     int i, val ;
    15     if (ch == ' ') val = 0 ;
    16     else val = ch-'A'+1 ;
    17     
    18     for (i = 0 ; i < 5 ; i++)
    19     {
    20         if (val & (1<<i)) s[4-i] = '1' ;
    21         else s[4-i] = '0' ;
    22     }
    23     s[5] = '\0' ;
    24 }
    25 
    26 
    27 void gao()
    28 {
    29     int x, y, d, i ;
    30     int xx, yy ;
    31     int tab[4][2] = {0,1,1,0,0,-1,-1,0} ;
    32     memset(out, '0', sizeof(out)) ;
    33     memset (vis, 0, sizeof(vis)) ;
    34     x = y = d = 0 ;
    35     for (i = 0 ; ss[i] ; i++)
    36     {
    37         out[x][y] = ss[i] ;
    38         vis[x][y] = 1 ;
    39         xx = x+tab[d][0], yy = y + tab[d][1] ;
    40         if (vis[xx][yy] == 0 && xx >= 0 
    41             && xx < r && yy >= 0 && yy < c) //不需要改变方向 
    42         {
    43             x = xx, y = yy ;
    44         }
    45         else
    46         {
    47             d = (d+1)%4 ;;
    48             x += tab[d][0], y += tab[d][1] ;
    49         }
    50     }
    51 }
    52 
    53 
    54 int main ()
    55 {
    56     int  T, i, j, nCase = 1 ;
    57 
    58     scanf ("%d%*c", &T) ;
    59     while (T--)
    60     {
    61         scanf ("%d%*c%d%*c", &r, &c) ;
    62         gets (str) ;
    63         ss[0] = '\0' ;
    64         for (i = 0 ; str[i] ; i++)
    65             load(ss+i*5, str[i]) ;
    66         gao() ;
    67         printf ("%d ", nCase++) ;
    68         for (i = 0 ; i < r ; i++)
    69             for (j = 0 ; j < c ; j++)
    70                 putchar (out[i][j]) ;
    71         puts ("") ;
    72     }
    73     return 0 ;
    74 }
  • 相关阅读:
    WordPress ProPlayer插件‘id’参数SQL注入漏洞
    WordPress Spider Catalog插件多个SQL注入和跨站脚本漏洞
    Apache Struts2 includeParams属性远程命令执行漏洞(CVE20131966)
    Linux kernel perf_events local root exploit
    Apache Struts ‘ParameterInterceptor’类OGNL安全绕过漏洞
    发现 解决 分享
    契约值多少钱?
    当阳光洒在脸上
    火车上的摘抄
    流浪
  • 原文地址:https://www.cnblogs.com/lzsz1212/p/2474345.html
Copyright © 2020-2023  润新知