【DFS】洛谷P6566 [NOI Online #3 入门组]观星(民间数据)
Link
Problem
Sample-1 in
5 7
*......
..**..*
.*...*.
...*...
....*..
Sample-1 out
3 4
Sample-2 in
10 10
**..**.**.
***....*..
*...**.**.
...*..*...
..........
**...**.*.
..*.*....*
..........
***..*.*..
.***..*...
Sample-2 out
4 12
思路
这天空如此狭小
暴力。
dfs处理每个星座,桶排序处理星系。反正数据不大,随便敲。
Code
#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;
int n,m,maxx,tongji,a[2001][2001],b[2001][2001],ans[100010];
int fx[10]={-1,0,1,-1,1,-1,0,1},fy[10]={-1,-1,-1,0,0,1,1,1};
char c;
bool check(int xx,int yy){if(xx == 0 || yy == 0 || xx > n || yy > m) return 0;return 1;
}
int dfs(int x,int y){ //dfs得出此星座的大小int anss = 1;b[x][y] = 1;for(int i = 0; i < 8; ++i)if(check(x+fx[i],y+fy[i]) == 1) //单纯判断边界if(b[x+fx[i]][y+fy[i]] == 0 && a[x+fx[i]][y+fy[i]] == 1)anss += dfs(x+fx[i],y+fy[i]);return anss;
}
int main(){scanf("%d%d",&n,&m);for(int i = 1; i <= n; ++i) //输入for(int j = 1; j <= m; ++j){c = getchar();while(c!='*' && c!='.') c = getchar();if(c == '*') a[i][j] = 1;}for(int i = 1; i <= n; ++i)for(int j = 1; j <= m; ++j)if(b[i][j] == 0 && a[i][j] == 1)++ans[dfs(i,j)]; //这个星座加入大小为dfs(i,j)的星系for(int i = 1; i <= 100000; ++i) //统计星系if(ans[i] > 0){maxx = max(maxx,i*ans[i]); //星系大小 = 星座大小*星座数++tongji;}printf("%d %d",tongji,maxx);
}
★Arknights-星极-寻耀★
【DFS】洛谷P6566 [NOI Online #3 入门组]观星(民间数据)相关推荐
- 【寒假每日一题】洛谷 P7471 [NOI Online 2021 入门组] 切蛋糕
题目链接:P7471 [NOI Online 2021 入门组] 切蛋糕 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 Alice.Bob 和 Cindy 三个好朋友得到 ...
- 题解【洛谷】P6566 NOI Online #3 入门组 观星
题目描述: 点击进入题目 Jimmy 和 Symbol 约好一起看星星,浩瀚的星空可视为一个长为 N.宽为 M的矩阵,矩阵中共有N×MN \times MN×M个位置,一个位置可以用坐标 (i,j)( ...
- 洛谷6474[NOI Online #2 入门组]荆轲刺秦王
题目背景 本测试数据为脚造,欢迎提供hack. 第18组数据卡了很多人,放于附件中供检查. 题目描述 时隔数年,刺客荆轲再次来到咸阳宫,试图刺杀嬴政. 咸阳宫的地图可以描述为一个 n 行 m 列的矩形 ...
- luogu P6566 [NOI Online #3 入门组]观星
题面传送门 直接bfsbfsbfs即可. 代码实现: #include<cstdio> #include<queue> #define max(a,b) ((a)>(b) ...
- [NOI Online #3 入门组]观星
题面传送门 就是一个dfs查找星座,然后再数出星系数. 函数: #include <bits/stdc++.h> using namespace std; int n,m,maxn,max ...
- 洛谷题目按难度点评---入门难度
洛谷题目按难度点评---入门难度 1.p1421 小玉买文具 难度:入门难度 考点:输入,输出,整数的四则运算 适用:小学生 #include <stdio.h> int main(){ ...
- 洛谷oj题单【入门2】分支结构-入门难度(Java)
洛谷oj题单[入门2]分支结构-入门难度(Java) 来源:https://www.luogu.com.cn/training/101#problems P5709 [深基2.习6]Apples Pr ...
- #洛谷oj:P1525 [NOIP2010 提高组] 关押罪犯
洛谷oj:P1525 [NOIP2010 提高组] 关押罪犯 #题目描述 #一看很明显是贪心算法 加排序 因为 这个中间最大值的那一对肯定是不会在一起的 从大到小来看 所有点对都尽量不要在一个监狱 # ...
- 洛谷P1003 铺地毯 noip2011提高组day1T1
洛谷P1003 铺地毯 noip2011提高组day1T1 洛谷原题 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n ...
最新文章
- 复旦陈静静 | 把握当下,坚持热爱,与食物图像识别结缘的科研之路
- 对Linux系统中的时钟和时间的探讨
- 如何规划网站设计方案让用户访问更加舒适?
- java设计前期工作基础和存在的困难_Java秒杀系统实战系列-基于Redisson的分布式锁优化秒杀逻辑...
- for循环批量写文件 shell_shell之for循环的3个简单脚本
- java 为文件及文件夹添加权限
- SharePoint2013 Excel导出好的代码
- Cocos2d-x之LUA脚本引擎深入分析
- 除了WhatsApp以外,还有哪些即时聊天软件?
- 一起来做一个 c++ 单项选择题标准化考试系统
- java poi 读合并单元格的内容,poi合并单元格,poi合并单元格并设置内容居中
- 离散小波变换wavedec matlab,Matlab实现小波变换
- Linux中执行shell脚本的方法,在Linux中执行Shell脚本的4种方法的总结
- 系统命名法(IUPAC命名法)
- 虚拟机安装systemc
- 【文本分析】基于粤港澳大湾区博物馆访客评价的文本分析
- html5 自动连接wifi,怎么设置自动切换wifi 点击右上角的【高级设置】
- 为什么安装step7时要重启计算机,step7安装提示重启怎么解决
- 王兴:恨在中国创业,他先后创办了校内和饭否,但都令人瞩目地...
- php详情页图片尺寸,拼多多主图轮播图详情页图片尺寸要求大全