NEUQOJ 1999: 三角形or四边形?【搜索联通块/模拟】
http://newoj.acmclub.cn/problems/1999
1999: 三角形or四边形?
题目描述:
JiangYu很无聊,所以他拿钉子在板子上戳出了一个由.#组成的10*10八联通点阵图。 请机智的你判断图中的#组成的是三角形还是四边形?
其中一种3 jiao *为
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . # . . . . .
. . . # . # . . . .
. . # . . . # . . .
. # . . . . . # . .
######### .
. . . . . . . . . .
. . . . . . . . . .
其中一种4 bian *为
. . . . . . . . . .
. . . . . . . . . .
. ########.
. # . . . . . . #.
. # . . . . . . #.
. # . . . . . . #.
. ########.
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
输入:
一个10*10点阵图
输出:
三角形输出"3 jiao *“ 四边形输出"4 bian *”
..................................#........#.#......#...#....#.....#..#########.....................
3 jiao *
题目描述:
JiangYu很无聊,所以他拿钉子在板子上戳出了一个由.#组成的10*10八联通点阵图。 请机智的你判断图中的#组成的是三角形还是四边形?
其中一种3 jiao *为
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . # . . . . .
. . . # . # . . . .
. . # . . . # . . .
. # . . . . . # . .
######### .
. . . . . . . . . .
. . . . . . . . . .
其中一种4 bian *为
. . . . . . . . . .
. . . . . . . . . .
. ########.
. # . . . . . . #.
. # . . . . . . #.
. # . . . . . . #.
. ########.
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
输入:
一个10*10点阵图
输出:
三角形输出"3 jiao *“ 四边形输出"4 bian *”
【分析】:
斜四边形:行2尖以及列2尖、 平四边形:0尖、 梯形:1个行尖,0个列尖
正放三角形:1个行尖、倒放三角形:1个列尖 (但是另一个都不为0)
【BFS】:
【代码】:
#include<iostream> #include<algorithm> #include<string.h> #include<cstring> #include<cstdio> using namespace std; #define ll long long #define ull unsigned long long #define mod 1000000007 #define inf 0x3f3f3f3f #define N 15 using namespace std; char s[N][N];const int dx[]={-1,0,1,1,1,0,-1,-1}; const int dy[]={-1,-1,-1,0,1,1,1,0};bool ok(int x, int y) //未越界+遇到# {return x>=0 && y>=0 && x<10 && y<10 && s[x][y]=='#'; }int dfs(int x, int y, int d) {int res = 0;s[x][y]='.';int nx = x + dx[d],ny = y + dy[d];if(!ok(nx,ny)) res++;else return res+=dfs(nx,ny,d);for(int i=0;i<8;i++){int nx=x+dx[i],ny=y+dy[i];if(ok(nx,ny)) return res+=dfs(nx,ny,i);}return res; }int main() {for(int i=0;i<10;i++)scanf("%s",s+i);int cnt=0;for(int i=0;i<10;i++){for(int j=0;j<10;j++){if(s[i][j]=='#')cnt = dfs(i,j,0);}}if(cnt>4) puts("4 bian *");else puts("3 jiao *"); }/* 保证每条边长度>2,保证所有的#之间是联通的。..#....... .#.#...... #####..... .......... .......... .......... .......... .......... .......... ..............#..... ...##..... ..#.#..... ...##..... ....#..... .......... .......... .......... .......... .............#...... ..#.#..... .#...#.... ..#.#..... ...#...... .......... .......... .......... .......... .................... .......... .......... .......... .......... .......... .......... .....###.. .....#.#.. .....###......#..... ...##..... ..#.#..... .#..#..... .####..... .......... .......... .......... .......... ..............#..... ...##..... ..#.#..... .#..#..... #####..... .......... .......... .......... .......... .......... */
DFS
#include<iostream> #include<algorithm> #include<string.h> #include<cstring> #include<cstdio> using namespace std; #define ll long long #define ull unsigned long long #define mod 1000000007 #define inf 0x3f3f3f3f #define N 15 using namespace std; char s[N][N];int main() {int f=0,f1=0,cnt,cnt1;for(int i=0;i<10;i++)gets(s[i]);for(int i=0;i<10;i++){cnt=cnt1=0;for(int j=0;j<10;j++){if(s[i][j]=='#')cnt++;if(s[j][i]=='#')cnt1++;}if(cnt == 1) {f++ ;}if(cnt1 == 1){f1++;}}if(f==1&&f1!=0 || f1==1) puts("3 jiao *");else puts("4 bian *");return 0; }/* 保证每条边长度>2,保证所有的#之间是联通的。..#....... .#.#...... #####..... .......... .......... .......... .......... .......... .......... ..............#..... ...##..... ..#.#..... ...##..... ....#..... .......... .......... .......... .......... .............#...... ..#.#..... .#...#.... ..#.#..... ...#...... .......... .......... .......... .......... .................... .......... .......... .......... .......... .......... .......... .....###.. .....#.#.. .....###......#..... ...##..... ..#.#..... .#..#..... .####..... .......... .......... .......... .......... ..............#..... ...##..... ..#.#..... .#..#..... .####..... .......... .......... .......... .......... .......... */
模拟
转载于:https://www.cnblogs.com/Roni-i/p/9029381.html
NEUQOJ 1999: 三角形or四边形?【搜索联通块/模拟】相关推荐
- 区间动态规划考试反思总结——颜色联通块 分离与合体 括号涂色
引子: 额~今天我们昨天才学了区间DP, 还没来得及复习就迎来了老师最喜欢的--我们最喜欢的模拟考试.但是,好像题已经超乎了我的想象. 啊啊啊啊啊啊啊啊啊!!! 后面两道没怎么读懂题啊! First ...
- 直线和圆交点 halcon_初中数学三角形、四边形、圆辅助线的添加方法
今天,小编为大家整理了初中数学三角形.四边形.圆的辅助线添加方法,速来看!! 1三角形中常见辅助线的添加 与角平分线有关的 (1)可向两边作垂线: (2)可作平行线,构造等腰三角形: (3)在角的两边 ...
- P1236-Network of Schools(学校网络)【最强联通块,Kosaraju】
正题 POJ题目链接 给出一个图,求联通块数量和加入多少条边后会将全图变为一个最强联通块. 机翻输入输出(需要自取) 输入 第一行包含整数N:网络中的学校数量(2 <= N <= 100) ...
- R6饮料AK赛(NOIP模拟赛)/省选专练HDU 5713 K个联通块
我好菜啊100+60+30 滚犊子吧,两天加起来才410搞个屁我一年前都可以考400 不说了,题毕竟比较难 T1还是水题但是比昨天难 这是一个开绝对值不等式的题. 根据对奇数和偶数的最优根的归纳一定有 ...
- F 魏迟燕的自走棋(思维+贪心+并查集维护联通块/左部点配对边<=2的匈牙利)
https://ac.nowcoder.com/acm/contest/9984/F 参考:F 魏迟燕的自走棋(贪心+并查集) 将每个人看成一个点,武器的能力值抽象成边,这样就转化成图论的模型了. 然 ...
- HDU 2952 Counting Sheep (DFS找联通块)
题目链接:请戳这里. 题目大意及思路:读懂题意就好了,就是DFS找联通块. 没什么好说的,见代码吧. #include<cstdio> #include<cstring> ...
- matlab有限元三角,FEM-MATLAB(75) 有限元编程75个案例,梁、板等结构,三角形,四边形等单元 Algorithm 数学计算 272万源代码下载- www.pudn.com...
文件名称: FEM-MATLAB(75)下载 收藏√ [ 5 4 3 2 1 ] 开发工具: matlab 文件大小: 40 KB 上传时间: 2017-03-08 下载次数: 0 提 供 ...
- 联通块 【题目描述】 一个n * m的方格图,一些格子被涂成了黑色,在方格图中被标为1,白色格子标为0。问有多少个四连通的黑色格子连通块。四连通的黑色格子连通块指的是一片由黑色格子组成的区域,其中的每
联通块 [题目描述] 一个n * m的方格图,一些格子被涂成了黑色,在方格图中被标为1,白色格子标为0.问有多少个四连通的黑色格子连通块.四连通的黑色格子连通块指的是一片由黑色格子组成的区域,其中的每 ...
- HDU - 5925 Coconuts (二维离散化+求联通块)
原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=5925 题意:求连通块的个数,以及每个联通块中点的个数. 数据范围:1e9 思路:离散化之后,dfs求联 ...
- 模拟战役题解(dfs,联通块,贪心)
目录 题目描述 输入描述: 输出描述: 输入 输出 输入 输出 思路: 代码: 题目描述 齐齐和司机在玩单机游戏<红色警戒IV>,现在他们的游戏地图被划分成一个n*m的方格地图.齐齐的基地 ...
最新文章
- 我都陪你坐了一天了,你好歹说句话啊!吖的,谱也忒大了。。。
- c# dbgrid数据导出到xlsx和ini中实例
- Button的使用(三):处理点击事件
- jdom 插入 修改 删除
- 全局稳定性收敛平衡点为0吗_该平衡点处的小扰动稳定性判据是什?
- 最全编程语言在线 API 文档
- TypeScript入门教程 之 箭头函数
- 基于DPDK+VPP实现高性能防火墙
- delphi services允许跨域访问
- 友图自动排料引擎 V1.0 开发指南
- NoSQL数据库的五种分类
- HiveQL(三):修改表ALTER TABLE
- 计算机文化书签,《计算机文化基础》EXCEL-机试[1]
- 数值分析思考题(钟尔杰版)参考解答——第六章
- C++学习(四九二)cmake file的GLOB和GLOB_RECURSE
- 沟通在日常管理工作中的重要性
- 统计检验 单尾还是双尾
- win10系统 插耳机或音箱在前置没有声音的解决方案
- SMB CIFS DOMIAN
- C语言:ASCII字符文件与二进制字符文件的相互转换