FJNU OJ 1105
来源:互联网 发布:java命名 编辑:程序博客网 时间:2024/06/08 11:08
GoldCoder Run #4 div.1
A题
Problem A: 捧杯辰的游戏
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 19 Solved: 5
Submit Status Discuss
Description
我们都知道,捧杯辰是数计ACM的希望,引领数计ACM夺回曾经的荣耀!由于捧杯辰经常忘我的刷着题目,经常晚归宿舍,不要说门禁了,捧杯辰有100种方式轻松出入宿舍。但是还有查房!!!保卫部发现捧杯辰晚归宿舍,上报梁老板,然而梁老板知道捧杯辰不是他能惹得起的人,因此假装跟捧杯辰说:我这里有一个9*9的板子,共81个小格子,他们被格子边沿的小墙分成了不规则的几个部分,格子中有一个数,表示一些隐藏的bug
每个格子上面有一个整数,它由以下元素组成:
16:格子上边有墙
32:格子右边有墙
64:格子下边有墙
128:格子左面有墙
现在呢,我会告诉你这一个9*9上面的bug信息,你能分好块就允许你晚归回宿舍!!!
捧杯辰一听,我去,这么简单的题目,哥根本不想做啊,唉,算了,为了可以名正言顺的晚归,还是叫学弟帮忙搞一下吧,哥还是适合world final的题目啊……
所以这个简单的题目就留个学弟解决了=_=
Input
第一行,一个整数T,表示梁老板给了T个要分的板块
接下来每个板块由9行组成,其中没一行由9个整数组成,整数的意思去问捧杯辰
Output
对于给定的板块,给每个格子从1开始标上它属于的板块号,从左到右,从上到下编号呦
Sample Input
2
144 16 112 208 80 16 48 144 48
128 32 144 80 112 128 96 128 32
128 32 160 144 112 160 208 0 32
192 96 160 160 208 96 176 192 96
208 80 32 192 80 48 128 80 112
144 48 224 144 112 160 160 144 48
128 0 112 160 208 96 160 128 32
128 32 144 32 208 80 96 128 32
192 96 192 64 80 112 208 64 96
240 240 240 240 240 240 240 240 240
240 240 240 240 240 240 240 240 240
240 240 240 240 240 240 240 240 240
240 240 240 240 240 240 240 240 240
240 240 240 240 240 240 240 240 240
240 240 240 240 240 240 240 240 240
240 240 240 240 240 240 240 240 240
240 240 240 240 240 240 240 240 240
240 240 240 240 240 240 240 240 240
Sample Output
Case 1:
1 1 1 2 2 2 2 3 3
1 1 4 4 4 2 2 3 3
1 1 4 5 5 2 3 3 3
1 1 4 5 2 2 6 3 3
4 4 4 5 5 5 6 6 6
7 7 4 8 8 5 6 9 9
7 7 7 8 5 5 6 9 9
7 7 8 8 6 6 6 9 9
7 7 8 8 8 8 9 9 9
Case 2:
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18
19 20 21 22 23 24 25 26 27
28 29 30 31 32 33 34 35 36
37 38 39 40 41 42 43 44 45
46 47 48 49 50 51 52 53 54
55 56 57 58 59 60 61 62 63
64 65 66 67 68 69 70 71 72
73 74 75 76 77 78 79 80 81
HINT
如果一个格子的整数是80, 即由16+64组成,那么就说明这个格子,上面跟下面有堵墙
解释:
麻烦得要死。。实际上就是dfs就没了
#include "cstring"#include "iostream"#include "string.h"#include "cstdio"#define upright 48#define updown 80#define upleft 144#define updownleft 208#define updownright 112#define upleftright 176#define downright 96#define downleft 192#define downleftright 224#define leftright 160#define all 240#define up 16#define down 64#define right 32#define left 128using namespace std;int a[15][15];int ans[15][15];int vis[15][15];int cnt;void search(int i, int j){ if (i < 1 || j < 1 || i>9 || j>9||vis[i][j]==1) return; vis[i][j] = 1; ans[i][j] = cnt; if (a[i][j] == upright) { search(i + 1, j); search(i, j - 1); } if (a[i][j] == updown) { search(i, j + 1); search(i, j - 1); } if (a[i][j] == upleft) { search(i, j + 1); search(i + 1, j); } if (a[i][j] == updownleft) { search(i, j + 1); } if (a[i][j] == updownright) { search(i, j - 1); } if (a[i][j] == upleftright) { search(i + 1, j); } if (a[i][j] == downright) { search(i - 1, j); search(i, j - 1); } if (a[i][j] == downleft) { search(i, j + 1); search(i - 1, j); } if (a[i][j] == downleftright) { search(i-1,j); } if (a[i][j] == leftright) { search(i+1, j); search(i - 1, j); } if (a[i][j] == up) { search(i +1, j); search(i , j+1); search(i , j-1); } if (a[i][j] == down) { search(i - 1, j); search(i, j + 1); search(i, j - 1); } if (a[i][j] == left) { search(i+1, j ); search(i-1, j ); search(i, j + 1); } if (a[i][j] == right) { search(i + 1, j); search(i - 1, j); search(i, j - 1); } if (a[i][j] == all) { return; } if (a[i][j] == 0) { search(i + 1, j); search(i - 1, j); search(i, j - 1); search(i, j + 1); }}int main(){ int t; while (scanf("%d", &t) != EOF) { for (int k = 1; k <= t; k++) { for (int i = 1; i <= 9; i++) { for (int j = 1; j <= 9; j++) scanf("%d", &a[i][j]); } cnt = 0; memset(vis, 0, sizeof(vis)); for (int i = 1; i <= 9; i++) { for (int j = 1; j <= 9; j++) { if (vis[i][j] == 0) cnt++; search(i, j); } } printf("Case %d:\n", k); for (int i = 1; i <= 9; i++) { for (int j = 1; j <= 9; j++) { if (j == 9) { printf(" %d\n", ans[i][j]); continue; } if (j == 1) { printf("%d", ans[i][j]); continue; } printf(" %d", ans[i][j]); } } } }}
- FJNU OJ 1105
- fjnu OJ 数鸭子
- FJNU OJ 1053
- FJNU OJ 1035
- FJNU OJ 1053
- FJNU OJ 1058
- FJNU OJ 2072粉刷迷宫。
- FJNU OJ 1054黄黄的计算器II
- FJNU
- FJNU字符串
- FJNU字符串
- fjnu 1772
- fjnu 1980 集合
- fjnu 1976 Elevator
- fjnu 1732 约瑟夫游戏
- fjnu 1730 整型数组
- fjnu 1728 抓迷藏
- fjnu 1715 对称数
- USACO 3.3 Camelot亚瑟王的宫殿(最短路)
- php 打开文件、字段替换、写入文件
- Android之EventBus
- hdu 5592 ZYB's Premutation(线段树求逆序数)
- project euler 61
- FJNU OJ 1105
- CSU 1552-Friends(大数判断素数+二分匹配)
- docker centos7 源码安装MySQL-5.7
- 数据结构(C语言版)严蔚敏 实习2 停车场管理 问题
- Maven学习系列--02一个简单的Maven项目
- c++二维动态数组分配与delete
- memcmp函数实现——string.h库函数
- iOS 之hitTest学习
- 第七章 面向对象编程