会员
周边
捐助
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
一半理性 一半感性
只在乎过程中的所得
博客园
首页
新随笔
联系
订阅
管理
TOJ 3006. Encoding
题目大意
给定一个r*c的矩阵,和一个字符串。将字符串转化为对应的数字串之后按照二进制从外到内绕圈填如数组,多余部分用0填充。如图:
最后,输出矩阵。
模拟方法
第一次写的时候写废了,因为自己模拟的方法是在太龌龊。之所以采用这种龌龊的方法是因为曾经这样AC过一个题,下面给出这次的AC代码,以后也要继续优化自己的代码风格。
len
=
r
*
c
/
5
;
int
rr,cc,bot,top,ls,rs;
//
bot,top,ls,rs表示上下左右的边界值
bot
=
r
-
1
;
top
=
0
;
ls
=
0
;
rs
=
c
-
1
;
rr
=
0
;
cc
=
0
;
memset(num,
0
,
sizeof
(num));
for
(t
=
0
;t
<
len;t
++
)
{
for
(tt
=
0
;tt
<
5
;tt
++
)
{
num[t]
+=
((op[rr][cc]
-
'
0
'
)
<<
(
5
-
tt
-
1
));
if
(rr
==
top
&&
cc
!=
rs)
cc
++
;
else
if
(cc
==
rs
&&
rr
!=
bot)
rr
++
;
else
if
(rr
==
bot
&&
cc
!=
ls)
cc
--
;
else
if
(cc
==
ls
&&
rr
!=
top
+
1
)
rr
--
;
else
if
(cc
==
ls
&&
rr
==
top
+
1
)
{
top
++
;
bot
--
;
rs
--
;
ls
++
;
cc
++
;
}
}
}
posted @
2008-08-11 20:09
DosXP
阅读(
387
) 评论(
0
)
编辑
收藏
举报
刷新页面
返回顶部
公告