1 疫情防控网格化

由于防控形势严峻,现在z市已经开始了全区域的网格化封控管理。该市的区域可以看成一个矩形,其中所有主干道都是水平或垂直的,并且贯穿整个区域。如图所示,黑色表示城区的边界,红色表示城区的主干道,其中边界和主干道宽度都为1,且不存在边界与主干道、主干道与主干道相邻的情况

为了方便网格化管理,我们定义网格单元是由城区边界或主干道围成的区域,且任意网格单元内不能包含主干道。上图中,该城区共被分割成了16个网格单元。

现在给出该区域的地图,需要你统计出该城区划分出了多少个网格单元,以方便安排医务人员和应急物资。

在计算机中,图像的本质就是二维的矩阵。为了方便处理,我们将上述图像中城区边界及里面的内容转化为了二维字符矩阵,详细见输入格式描述。

输入格式:

第一行输入两个整数n,m(3≤n,m≤100)
其后n行,每行m个字符,字符有'*'和'#'两种。'*'代表城区边界或主干道,'#'代表网格单元内区域。

输出格式:

输出一行一个整数,代表地图中的网格单元个数。

输入样例:

3 7
*******
*##*##*
*******

输出样例:

2

源代码

传染:即为当某个元素为#时,其相邻的#的位置均被打上标记,即对于连着的#只计算一个解

#include <iostream>
using namespace std;
const int N = 1000+10;
char g[N][N];//存图
int a[N][N]={0};//标记数组
int main()
{int ans=0;int n,m;cin>>n>>m;for(int i = 0;i < n;i ++ ){for(int j = 0;j < m;j ++ ){cin>>g[i][j];}}for(int i = 0;i < n;i ++ ){for(int j = 0;j < m;j ++ ){if(g[i][j]=='#')//如果查到元素为#{if(a[i+1][j]==0&&a[i-1][j]==0&&a[i][j+1]==0&&a[i][j-1]==0)//且该元素周围无标记{a[i][j]=1;//标记该位置ans++;//答案加一}else a[i][j]=1;//若周围有标记则“传染”}}}cout<<ans;return 0;
}

2 子区域计数

由于防控形势严峻,现在z市已经开始了全区域的网格化封控管理。该市的区域可以看成一个矩形,其中所有主干道都是水平或垂直的,并且贯穿整个区域。如图所示,黑色表示城区的边界,红色表示城区的主干道。其中边界和主干道宽度都为1,且不存在边界与主干道、主干道与主干道相邻的情况。

为了方便网格化管理,我们定义网格单元是由城区边界或主干道围成的区域,且任意网格单元内不能包含主干道。上图中,该城区共被分割成了16个网格单元。

同时,网格化管理的本质思想是“分治”,不同的划分粒度对于管理效率会产生深远的影响。所以,这次W同学思考的不仅仅是网格单元,而是子网格。

子网格的定义为:子网格也是一个矩形,且子网格矩形4个角的对应点都位于边界与边界、边界与主干道、主干道与主干道的交点上。我们认为两个子网格是相同的,当且仅当两个子网格的4个角对应点全部重合。根据这个定义,我们可以知道,任意的网格单元也是一种子网格,整个城区的矩形也是一种特殊的子网格。

同样给出上述的图像,你能否帮小W计算下,有多少种可能的子网格?

输入格式:

第一行输入两个整数n,m(3≤n,m≤100)
其后n行,每行m个字符,字符有'*'和'#'两种。'*'代表城区边界或主干道,'#'代表网格单元内区域。

输出格式:

输出一行一个整数,代表符合条件不同子网格的个数。

输入样例:

3 7
*******
*##*##*
*******

源代码

标记数组处理以后对应关系

#include <iostream>
using namespace std;
const int N = 1000+10;
char g[N][N];//存图
int a[N][N]={0};//标记数组
int ans=0;
int n,m;
int main()
{cin>>n>>m;for(int i = 0;i < n;i ++ ){for(int j = 0;j < m;j ++ ){cin>>g[i][j];//对图进行输入时 if(g[i][j]=='#')//若此元素为# {for(int k = 0;k < n;k ++ )a[k][j]=1;//该元素所在行打标记 for(int l = 0;l < m;l ++ )a[i][l]=1;//该元素所在列打标记 }}}//开始查为*且未被标记的 for(int i = 0;i < n;i ++ ){for(int j = 0;j < m;j ++ ){if(a[i][j]==0&&g[i][j]=='*'){for(int k = i;k < n;k ++ ){for(int l = j;l < m;l ++ ){if(k!=i&&l!=j&&g[k][l]=='*'&&a[k][l]==0)ans++;//如果查到的*不同行不同列且未被标记则为一个矩形的解 }}}}}cout<<ans;return 0;
}

3 怀旧的思考挑战

疫情来了,柴刘青山在寝室关着非常无聊,和室友一起玩跑跑卡丁车这款老游戏。

这款游戏有一个模式叫做组队竞速,每局8个人,分为两队,最终比拼哪队总分更高。

第一名冲线得到8分,第二名得到7分,以此类推,第八名得到1分。

柴刘青山好奇自己队伍在某一局游戏中是否能得到某个总分,如果可以,有多少种排名情况可以达成该总分?

后记:柴刘青山和室友们寻求过短暂的放松后,决定还是在学业上开启“竞速模式”,约定共同努力学习,参加“战疫杯”!

输入格式:

第一行一个正整数n,表示猜想的n总分。 0≤n≤10000

输出格式:

如果可以达成,输出一个正整数x,代表有多少种排名情况。
如果不能达成,输出NO。

输入样例:

25

输出样例:

1

样例解释1

柴刘青山的队伍需要取得1、2、3、5名,对应8+7+6+4=25。有且仅有这一种情况。

源代码

从高到低枚举即可,注意在枚举的时候我们是要尽量满足那个解的情况,因此我们要从大到小进行枚举,且枚举的时候每个内层变量是外层变量的后一位,因此我们可以避免对于枚举的四个数进行判断是否两两,节省大量程序运算时间的同时也能够保证四个数各不相同

#include <iostream>
using namespace std;
int main()
{int num;cin>>num;int ans=0;for(int i = 8;i >= 1;i -- ){for(int j = i-1;j >= 1;j -- ){for(int k = j-1;k >= 1;k -- ){for(int l = k-1;l >= 1;l -- ){if(i+j+k+l==num)ans++;}}}}if(ans==0)cout<<"NO";else cout<<ans;return 0;
}

郑州大学“战役杯”第三次比赛题解相关推荐

  1. 郑州大学“战役杯”第二次比赛题解

    1 公司的Logo 为了感谢河南省八六三软件有限公司对战疫杯ACM在线程序设计竞赛的大力支持,小Y决定为公司制作个logo. logo通常要用在各种不同的场景,因此logo的尺寸必须是可变的.现给你原 ...

  2. 郑州大学“战役杯”第一次比赛题解

    1 我的账本 当前疫情防控形势严峻,学校为了减少同学们因为吃饭造成的聚集,规定一个寝室每次派个代表出去买饭,小W寝室的6人(编号1-6)决定每次抽签派一个人去买6份同样的套餐.但是每次买完饭后立刻转账 ...

  3. 欧洲杯第三周的比赛闲聊

    历史文章, <欧洲杯第二周的比赛闲聊> <欧洲杯第一周的比赛闲聊> 本周小组赛决出了胜负,几家欢喜几家愁,由于赛制的特殊,小组第三都是有机会出线的,因此竞争起来,其实不是特激烈 ...

  4. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛题解

    第八届"图灵杯"NEUQ-ACM程序设计竞赛个人赛题解 先抱怨一下,这场比赛的题锅太多了,而且正赶上状态不好,Ac 1/12就离谱.. H 数羊 给定n,m(1≤n≤109,0≤m ...

  5. 欧洲杯第二周的比赛闲聊

    历史文章, <欧洲杯第一周的比赛闲聊> 欧洲杯小组赛已经过了2/3,有些球队提前出线了,有些球队提前出局了,有些球队还在挣扎中,足球就是这样. 内德维德.扬科勒的捷克队曾经给我们很深的印象 ...

  6. 欧洲杯第四周的比赛闲聊

    历史文章, <欧洲杯第三周的比赛闲聊> <欧洲杯第二周的比赛闲聊> <欧洲杯第一周的比赛闲聊> 上周进入淘汰赛,意味着每场比赛都有一支打道回府的球队,这就是竞技体育 ...

  7. [蓝桥杯]荒岛探测python3满分题解

    [蓝桥杯]荒岛探测python3满分题解 文章目录 [蓝桥杯]荒岛探测python3满分题解 前言 一.思路 二.代码 3. 总结 前言 小白一枚,最近在准备蓝桥杯记录一下满分题解的题目 一.思路 获 ...

  8. 浅谈这几天做的三个比赛

    从9月15日开始,我这边连着做了三个比赛,分别是数学建模国赛,triz省赛和西门子的国赛 所以搁置了一些写技术文章和发视频的工作 在敲这篇文章的时候,我准备回学校了,今天是第一批返校的第二天,也是最后 ...

  9. 【超好懂的比赛题解】HNCPC Multi-university Training Round3 比赛题解

    title : HNCPC Multi-university Training Round3 date : 2022-7-29 tags :ACM,练习记录 author : LINNO HNCPC ...

最新文章

  1. tomca7.0 mysql配置连接池_tomcat7.0+mysql连接池配置
  2. AcWing 164. 可达性统计
  3. mysql的单页应用框架搭建_采用vue+webpack构建的单页应用——私人博客MintloG诞生记...
  4. igs时间和utc_UTC和GMT时间
  5. tensorboard使用_colab打不开tensorboard的解决办法
  6. ios支付宝支付失败不回调_iOS 支付宝网页支付回调问题
  7. BeycondCompare3破解绿色版下载
  8. 【QT 数据库专辑】【04】WIN7下搭建本地SQL SERVER数据库 - 手把手-登录远程数据库帐号设定问题
  9. 复练-软考网规-下午案例题考点和答题技巧
  10. Spring学习4-面向切面(AOP)之Spring接口方式
  11. python爬虫常用第三方库
  12. 随手记_科研攻略_常犯错误
  13. define定义的函数如何引用_3分钟短文:Laravel 编程中优雅地添加定义常量
  14. vvv在线文档导出工具_墙裂推荐 | 在线文档编辑工具
  15. CentOS下载安装
  16. 彻底解决CUDA安装,从翻译文档开始_Compiling CUDA Programs
  17. 基于cesium实现城市查询并定位
  18. win10自动修复-无限循环【通用完美】超简单解决办法
  19. html载入3d模型,webGL3D模型的加载与使用
  20. 网安-windows提权-3389.bat

热门文章

  1. MATLAB编写普朗克定律图
  2. java 文件压缩并设置密码解压
  3. CSDN的一亩三分地
  4. java-htttp-远程访问之RestTemplate,json
  5. 产学研用“一览无余”!2020启智开发者大会亮点抢鲜报
  6. 国风(1)中国民族调式
  7. 地下停车场FM调频广播覆盖方案
  8. 如何从红帽官方网站下载镜像文件
  9. 智慧航运船公司智能集装箱管理方案,手机随时随地AI自动集装箱信息识别+箱况残损+地点报备,智能船公司智能化货代航运智能铁路货运
  10. 使用神经网络训练iris数据集 —— Python数据工程No.7