解题思路:太搞高兴了,在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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复