[NOI Online #3 入门组]观星
题面传送门
就是一个dfs查找星座,然后再数出星系数。
函数:
#include <bits/stdc++.h>
using namespace std;
int n,m,maxn,maxnr,fx[8]={ 0,0,-1,1,-1, 1,-1,1},fy[8]={-1,1,-1,1, 1,-1, 0,0};
int a[1539][1539],b[900001]={0};
inline void read(register int &x){x=0;register int f=1;register char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9')x=(x<<3)+(x<<1)+(c^48),c=getchar();x*=f;
}
int dfs(int x,int y){int ans=0,bx=x,by=y;for(register int i=0;i<=7;i++){x=bx,y=by;x+=fx[i];y+=fy[i];if(x>=1&&x<=n&&y>=1&&y<=m&&a[x][y]==1){a[x][y]=0;ans+=dfs(x,y);}}ans++;return ans;
}
int main(){// freopen("star.in","r",stdin);
// freopen("star.out","w",stdout);int ansr=0;read(n);read(m);char s;for(register int i=1;i<=n;i++)for(register int j=1;j<=m;j++){cin>>s;if(s=='*')a[i][j]=1;elsea[i][j]=0;}for(register int i=1;i<=n;i++)for(register int j=1;j<=m;j++)if(a[i][j]==1){a[i][j]=0;int k=dfs(i,j);b[k]++;maxnr=max(k,maxnr);}for(register int i=1;i<=maxnr;i++){if(b[i]>=1) ansr++;maxn=max(maxn,b[i]*i);}printf("%d %d",ansr,maxn);return 0;
}
队列:
#include <bits/stdc++.h>
using namespace std;
int a[1539][1539],x,y,n,m,k,ans,tot,pus,f[1539][1539],nowx,nowy,d[1539*1539];
int xp[9]={0,1,0,-1,0,1,1,-1,-1};
int yp[9]={0,0,1,0,-1,1,-1,1,-1};
struct yyy{int x,y;}tmp;
queue<yyy> q;
char s;
int main(){// freopen("star.in","r",stdin);
// freopen("star.out","w",stdout);register int i,j,h;scanf("%d%d",&n,&m);for(i=1;i<=n;i++){for(j=1;j<=m;j++){s=getchar();while(s!='*'&&s!='.') s=getchar();if(s=='*') a[i][j]=1;} }for(i=1;i<=n;i++){for(j=1;j<=m;j++){if(!f[i][j]&&a[i][j]){ans=1;q.push((yyy){i,j});f[i][j]=1;while(!q.empty()){tmp=q.front();q.pop();for(h=1;h<=8;h++){nowx=tmp.x+xp[h];nowy=tmp.y+yp[h];if(a[nowx][nowy]&&!f[nowx][nowy]) q.push((yyy){nowx,nowy}),ans++,f[nowx][nowy]=1;}}d[ans]+=ans;if(d[ans]==ans)tot++;pus=max(pus,d[ans]);}}}printf("%d %d\n",tot,pus);return 0;
}
[NOI Online #3 入门组]观星相关推荐
- 题解【洛谷】P6566 NOI Online #3 入门组 观星
题目描述: 点击进入题目 Jimmy 和 Symbol 约好一起看星星,浩瀚的星空可视为一个长为 N.宽为 M的矩阵,矩阵中共有N×MN \times MN×M个位置,一个位置可以用坐标 (i,j)( ...
- luogu P6566 [NOI Online #3 入门组]观星
题面传送门 直接bfsbfsbfs即可. 代码实现: #include<cstdio> #include<queue> #define max(a,b) ((a)>(b) ...
- 【DFS】洛谷P6566 [NOI Online #3 入门组]观星(民间数据)
Link Problem Sample-1 in 5 7 *...... ..**..* .*...*. ...*... ....*.. Sample-1 out 3 4 Sample-2 in 10 ...
- 【寒假每日一题】洛谷 P7471 [NOI Online 2021 入门组] 切蛋糕
题目链接:P7471 [NOI Online 2021 入门组] 切蛋糕 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 Alice.Bob 和 Cindy 三个好朋友得到 ...
- NOI Online 2022 入门组
NOI Online 2022 入门组 题目 T1 王国比赛 智慧之王 Kri统治着一座王国.这天 Kri决定举行一场比赛,来检验自己大臣的智慧. 比赛由 n道判断题组成,有 m位大臣参加. 现在你已 ...
- 洛谷6474[NOI Online #2 入门组]荆轲刺秦王
题目背景 本测试数据为脚造,欢迎提供hack. 第18组数据卡了很多人,放于附件中供检查. 题目描述 时隔数年,刺客荆轲再次来到咸阳宫,试图刺杀嬴政. 咸阳宫的地图可以描述为一个 n 行 m 列的矩形 ...
- NOI Online 2022 入门组T2
题面: Kri 喜欢玩数字游戏. ⼀天,他在草稿纸上写下了 t 对正整数 (x,y) ,并对于每⼀对正整数计算出了 z=x*y*gcd(x,y) . 可是调⽪的 Zay 找到了 Kri 的草稿纸,并把 ...
- P6474 [NOI Online #2 入门组] 荆轲刺秦王 题解--zhengjun
我一开始就打出来了,可是忘记一个很重要的剪枝,就是如果当前的步数已经超过答案的步数就不用搜了,还有就是每一个点的每一种状态都只能走到一次(其实就是走到一个点,之前使用了相同的魔法已经到过这个点)那么也 ...
- 数学游戏 [NOI Online 2022 入门组]
题目要求 题目解析 假设x和y的最大公约数为t,则x/t和y/t是互质的,因此, x 2 x^2 x2和 z / x z/x z/x的最大公约数为 t 2 t^2 t2. 下面程序已通过官方测试数据. ...
最新文章
- python描述器做权限控制_Python装饰器14-描述器
- Possion 分布
- 重磅:USNews2021世界大学排行榜出炉!清华首登亚洲第一
- 【Android 内存优化】Java 引用类型 ( 强引用 | 软引用 | 弱引用 | 虚引用 )
- View和View的参数传递
- 多功能网址导航源码 包含交易系统等多功能
- Flutter尝鲜3——动画处理并行和串行
- redis数据丢失_Redis持久化Redis宕机或者出现意外删库导致数据丢失解决方案
- 常用游戏分析工具 之 PChunter 及 procexp 使用心得
- 自动驾驶决策规划研究综述
- 浏览器如何截图整个滚动屏 ?
- 教你“强人锁男”——java并发编程的常用锁类型
- 实战PyQt5: 086-图元类QGraphicsItem
- jquery省市县三级联动
- iOS Background Fetch 后台应用程序刷新的使用
- IT公司、软件公司资质(转)
- TP-Link wr886n 路由器插上光纤后网速变慢问题
- 机器学习-3:MachineLN之dl
- 无代码开发是什么?白码详解
- 正弦波振荡电路的相关概念
热门文章
- 为韩春雨老师和他的 NgAgo-gDNA 点赞
- php游戏礼包源码,php 游戏新手卡领号程序管理系统 v2.5
- Python几种常见算法汇总
- excel 多条件查找三种方法:lookup、vlookup、indexmatch 多条件查找案例
- 【jetson nano 4GB】dd备份镜像(手把手超详细)
- python接口测试框架选择之pytest+yaml+Allure
- 阿里云大数据工程师ACA认证考试大纲
- 第一届华数杯B题思路浅析
- selenium python自动化测试教程_Python selenium自动化测试模型图解
- 6.CreateEvent函数与SetEvent函数