解题思路:太搞高兴了,在poj那里通不过,来这里一下就通过了感谢感谢

用了一个半小时,太久了,中途还是遇到了很多问题,还是参考了蛇形矩阵

注意事项:

参考代码:

##l3=[]

##for i in range(26):

l=list(input().split())

##print(l)

aa=r=int(l[0])

bb=c=int(l[1])

del(l[0])

del(l[0])

##print(l,r,c)

##4 4 ACM

l1=''

nl=len(l)

i=0

while nl>0:

##    print(l)

    for j in l[0]:

        

        l1+=bin(ord(j)-64)[2::].zfill(5)

##        print(l1)

    del(l[0])

    nl=len(l)

    if nl==0:

        break

    else:

        l1+='00000'#前面这里得到加密以后的字符串其实也测试了很久

l4=[[0 for i in range(c)]for j in range(r)]

##print(l4)

nl1=len(l1)

##print(nl1)

l4[0][0]=l1[0]

##print(l1[4])

i=0

j=0

x=0

q=1

while q<nl1:

    while j+1<c:

        j+=1

        l4[i][j]=l1[q]

        q+=1

        if q==nl1:

            break#懂得用,刚开始要删除字符串里面的字符,不知道怎么删除,现在还是不知道,值得用家的,搜了一下感觉懂了一点,和我之前的想法一样,只是自己不会用,替换成啥都没有replace函数

##        print(q)

    if q==nl1:

        break#这个添加了两次,才能跳出循环

    while i+1<r:

        i+=1

        l4[i][j]=l1[q]

        q+=1

        if q==nl1:

            break

    if q==nl1:

        break

    while j-1>=x:

        j-=1

        l4[i][j]=l1[q]

        q+=1

        if q==nl1:

            break

    if q==nl1:

        break

    while i-1>x:

        i-=1

        l4[i][j]=l1[q]

        q+=1

        if q==nl1:

            break

    if q==nl1:

        break

    r-=1

    c-=1

    x+=1

##print(l4)

for i in range(aa):#刚开始循环还用RC忘记RC前面已经被剪掉了,已经不是一开人头的RC了,后面检查才发现,要懂得用print检查

    for j in range(bb):

        print(int(l4[i][j]),end='')

    


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论