当前位置: 首页 > news >正文

ABC351

C 栈的应用

#include<bits/stdc++.h>using namespace std;stack<int>stk;int main()
{int n;cin>>n;for(int i=1;i<=n;i++){int a;cin>>a;while(!stk.empty()&&a==stk.top()){stk.pop();a++;}stk.push(a);}cout<<stk.size()<<endl;return 0;
}
//每次操作序列最右边的两个球,不难想到可以使用栈来进行维护。为了便于处理,
//每次操作不将数字放入栈后再进行判断,直接拿该球与栈顶元素比较,如果相同就删除栈顶元素,并增加小球大小,
//直到栈空或栈顶元素与当前小球大小不同,然后将小球放入栈中。结束操作后,栈中元素数量即为最后的答案。

D BFS加set

#include <iostream>
#include <cstring>
#include <algorithm>
#include <set>
#include<queue>
#define x first
#define y secondusing namespace std;const int N = 1e3+10;
typedef pair<int, int> PII;char c[N][N];
int n,m,ans=0;
int dp[N][N],vis[N][N];int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};queue<PII>Q;
set<PII>V;
set<PII>S;bool check(int x,int y)
{for(int i=0;i<4;i++){int a=x+dx[i],b=y+dy[i];if(c[a][b]=='#')return 0;}return 1;
}void bfs(int x,int y)
{V.clear();S.clear();Q.push({x,y});vis[x][y]=1;while(!Q.empty()){auto t=Q.front();Q.pop();V.insert(t);for(int i=0;i<4;i++){int a=t.x+dx[i],b=t.y+dy[i];if(a>=1&&b>=1&&a<=n&&b<=m&&check(a,b)&&vis[a][b]==0){vis[a][b]=1;Q.push({a,b});}}}for(auto man:V){for(int i=0;i<4;i++){int a=man.x+dx[i],b=man.y+dy[i];if(c[a][b]=='.'&&vis[a][b]==0){S.insert({a,b});}}}int size=V.size()+S.size();ans=max(ans,size);
}void solve()
{cin>>n>>m;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>c[i][j];for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){if(vis[i][j]==0&&c[i][j]=='.'){ans=max(ans,1);if(check(i,j))bfs(i,j);}}cout<<ans<<endl;
}int main()
{solve();return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 上心师傅的思路分享(三)--Nacos渗透
  • adb多设备多屏幕调试
  • yarn保姆级安装和使用
  • 实战:部署三台kafka服务集群
  • Linux 内核参数-相关介绍
  • 力扣刷题--728. 自除数【简单】
  • AutoCAD Mechanical机械版专业的计算机辅助设计软件安装包下载安装!
  • 【SQLAlChemy】filter过滤条件如何使用?
  • 定个小目标之刷LeetCode热题(13)
  • 【Linux】rsync远程数据同步工具使用
  • 新品发布 | 飞凌嵌入式RK3576核心板,为AIoT应用赋能
  • 网络基础-IP协议
  • git 下载openNeuro大文件
  • frida hook微信防撤回(PC端)
  • Rust-03-数据类型
  • [case10]使用RSQL实现端到端的动态查询
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • axios 和 cookie 的那些事
  • ES6系列(二)变量的解构赋值
  • Facebook AccountKit 接入的坑点
  • Git的一些常用操作
  • js学习笔记
  • PHP 的 SAPI 是个什么东西
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 从重复到重用
  • 浏览器缓存机制分析
  • 前嗅ForeSpider采集配置界面介绍
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 如何胜任知名企业的商业数据分析师?
  • 小程序 setData 学问多
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 交换综合实验一
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • #### golang中【堆】的使用及底层 ####
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (¥1011)-(一千零一拾一元整)输出
  • (2)(2.10) LTM telemetry
  • (不用互三)AI绘画工具应该如何选择
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (全注解开发)学习Spring-MVC的第三天
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • ... 是什么 ?... 有什么用处?
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 使用配置文件
  • .net 受管制代码
  • .Net各种迷惑命名解释
  • .NET面试题(二)
  • .NET未来路在何方?
  • @Builder用法