编程C,C ++,Java,PHP,Ruby,图灵,VB
计算机科学加拿大 
编程C,C ++,Java,PHP,Ruby,图灵,VB  

用户名:   Password: 
 登记登记   
 回答J5 / S3平面图(2003)CCC ??????
指数 -> 竞赛
查看上一个主题 可打印的版本下载主题订阅本主题私人信息刷新页面 查看下一个主题
作者 信息
n




邮政发布: FRI 2月20日,2004年7:19下午7:19  帖子主题:答案J5 / S3平面图(2003)CCC ??????

我想知道,如此接近撰写CCC有人有工作答案 J5 / S3平面图(2003)CCC, 在 java或图灵。如果我能理解,这将是非常有帮助的。托尼试图帮助我,但如果你有代码很容易。

谢谢
赞助
赞助
赞助
赞助
安迪




邮政发布: 2004年2月21日星期六11:57  帖子主题:(没有主题)

我用whatdotcolor做了它......在这里看看

http://www.9tt6y.icu/v2/viewtopic.php?t=2381
n




邮政发布: 2004年2月21日星期六下午3:26  帖子主题:(没有主题)

我读了你的评论,但你真的可以解释你是如何点点点出现多少房间?

谢谢
Zylum.




邮政发布: 2004年2月21日星期六7:40  帖子主题:(没有主题)

这是我的方式对不起,我没有时间评论它,我明天会提出评论的版本..这有点凌乱,对不起...

代码:

%website:  http://contest-cemc.uwaterloo.ca/ccc/sitemap.shtml
3d中奖规则 infile: int
3d中奖规则 filename.: string := "FLOOR5.IN.txt"
打开:infile,filename,得到

3d中奖规则行,cols,totntiles: int

得到: inFile, totalTiles
得到: inFile, rows
得到: inFile, cols

3d中奖规则瓷砖:数组1 .. COL,1 .. int行
3d中奖规则 temprows.:数组1 ..字符串行
3d中奖规则字母: string

划船: 1 .. rows
    get : inFile, tempRows (row)
结束

对于Col.: 1 .. cols
    for row : 1 .. rows
        letter := tempRows (row) (col)
        if letter = "I" then
            tiles (col, row) := 0
        else
            tiles (col, row) := 1
        end if
    end for
结束

/ ************************************************* ****************************
 ************************************************** ****************************
 ************************************************** ***************************** /

3d中奖规则 mofftiles.: int := 0
3d中奖规则房间化:阵列1 .. 1000的int
3d中奖规则开放,关闭:数组1 .. COL,1 .. int行

为我: 1 .. 1000
    roomSize (i) := 0
结束

为我: 1 .. cols
    for j : 1 .. rows
        OPEN (i, j) := 0
        CLOSED (i, j) := 0
    end for
结束

找到了3d中奖规则: int
程序探索室
    found := 0
    for tx : 1 .. cols
        for ty : 1 .. rows
            if tiles (tx, ty) = 1 and CLOSED (tx, ty) = 0 then
                OPEN (tx, ty) := 1
                found := 1
                exit when found = 1
            end if
        end for
        exit when found = 1
    end for
结束探索室

程序核对(strtX, strtY : int)
    if CLOSED (strtX, strtY) = 0 then
        usedTiles += 1
        CLOSED (strtX, strtY) := 1
        OPEN (strtX, strtY) := 0
        if strtX > 1 then
            if CLOSED (strtX - 1, strtY) = 0 and OPEN (strtX - 1, strtY) = 0 and tiles (strtX - 1, strtY) = 1 then
                OPEN (strtX - 1, strtY) := 1
            end if
        end if
        if strtX < cols then
            if CLOSED (strtX + 1, strtY) = 0 and OPEN (strtX + 1, strtY) = 0 and tiles (strtX + 1, strtY) = 1 then
                OPEN (strtX + 1, strtY) := 1
            end if
        end if

        if strtY > 1 then
            if CLOSED (strtX, strtY - 1) = 0 and OPEN (strtX, strtY - 1) = 0 and tiles (strtX, strtY - 1) = 1 then
                OPEN (strtX, strtY - 1) := 1
            end if
        end if
        if strtY < rows then
            if CLOSED (strtX, strtY + 1) = 0 and OPEN (strtX, strtY + 1) = 0 and tiles (strtX, strtY + 1) = 1 then
                OPEN (strtX, strtY + 1) := 1
            end if
        end if
    end if
结束核对

3d中奖规则 sx,sy: int := 1
3d中奖规则 check.: int := 0
程序探索
    check := 0
    for tx : 1 .. cols
        for ty : 1 .. rows
            if OPEN (tx, ty)= 1然后%并关闭(tx, ty) = 0 and tiles (tx, ty) = 1 then
                check := 1
                sx := tx
                sy := ty
                exit when check = 1
            end if
        end for
        exit when check = 1
    end for
最终探索

3d中奖规则房间: int := 1
探险场
环形
    explore
    checkTiles (sx, sy)
    if check = 0 then
        roomSize (room) := usedTiles
        usedTiles := 0
        room += 1
        findRoom
    end if
    exit when found = 0
结束循环

房间 := 0
为我: 1 .. 1000
    if roomSize (i) > 0 then
        room += 1
    end if
    exit when roomSize (i) = 0
结束

%排序室
3d中奖规则 temp.: int
为我: 1 .. room
    for j : 1 .. room - 1
        if roomSize (j) < roomSize (j + 1) then
            temp := roomSize (j)
            roomSize (j) := roomSize (j + 1)
            roomSize (j + 1) := temp
        end if
    end for
结束

3d中奖规则房间: int := 0
为我: 1 .. room
   当林蒂利斯 - 房间化时出口(i) < 0
   如果林蒂利斯 - 房间化(i) >= 0 then
       TotnTiles - =房间化(i)
        rooms += 1
    end if
结束


放房," rooms, ", totalTiles, "平方米左侧"


关闭: inFile
安迪




邮政发布: Sun 22,2004 2004年1:53 PM  帖子主题:(没有主题)

哇,这太长了......为了我的方式,我只是画出填充,然后计算那里有多少种颜色
Zylum.




邮政发布: Sun 22,2004 8:23 PM  帖子主题:(没有主题)

我必须承认,你的部分努力,但你只会获得12/15,因为我得到了完整的标记......我的意思是你的测试3是8房间,答案留下了2平方米2平方米剩下5间2平方米的房间...

-Zylum.
亚当磺化




邮政发布: 2004年2月24日星期二7:52  帖子主题:(没有主题)

或者因为这几乎是一个标准的迷宫问题,我们都可以只使用递归并忘记Whatdotcolor?
Zylum.




邮政发布: 2004年2月24日星期二3:57  帖子主题:(没有主题)

好主意 很高兴
赞助
赞助
赞助
赞助
从上一个显示帖子:   
   指数 -> 竞赛
查看上一个主题 告诉一个朋友可打印的版本下载主题订阅本主题私人信息刷新页面 查看下一个主题

11  [ 8 Posts ]
跳到:   


Style:  
搜索: