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

打卡信奥刷题(3146)用C++实现信奥题 P7663 [COCI 2014/2015 #5] JABUKE

P7663 [COCI 2014/2015 #5] JABUKE

题目描述

给你一个n × m n \times mn×m的矩阵,其中苹果树用x表示,空地用.表示。

g gg年,每年都会从天而降一个苹果,落在坐标( x i , y i ) (x_i,y_i)(xi,yi)上,要求出这个苹果离最近一棵苹果树的距离的平方。当然,一年后这个苹果会长成新的一颗苹果树,并参与一年后落下的那个苹果的计算。

输入格式

第一行两个正整数n , m n,mn,m,表示矩阵的长,宽。

接下来n nn行,每行m mm个字符,字符仅含x.,表示该矩阵。

接下来一个正整数g gg,表示年份。

接下来g gg行每行两个正整数x i , y i x_i,y_ixi,yi,表示每年苹果下落的位置。

输出格式

一共g gg行,每行一个整数,表示每个苹果下落时离最近一棵苹果树的距离的平方。

输入输出样例 #1

输入 #1

3 3 x.. ... ... 3 1 3 1 1 3 2

输出 #1

4 0 5

输入输出样例 #2

输入 #2

5 5 ..x.. ....x ..... ..... ..... 4 3 1 5 3 4 5 3 5

输出 #2

8 8 4 1

说明/提示

对于30 % 30\%30%的数据,1 ≤ g ≤ 500 1 \leq g \leq 5001g500

对于100 % 100\%100%的数据,1 ≤ n , m ≤ 500 , 1 ≤ g ≤ 10 5 1\leq n,m \leq 500,1 \leq g \leq 10^51n,m500,1g105,保证初始矩阵至少包含一棵苹果树。

距离计算公式:d ( ( x 1 , y 1 ) , ( x 2 , y 2 ) ) = ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 d((x_1,y_1),(x_2,y_2))=\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}d((x1,y1),(x2,y2))=(x1x2)2+(y1y2)2

译自 COCI 2014/2015 CONTEST #5。

C++实现

#include<bits/stdc++.h>usingnamespacestd;set<int>st[510];intn,m,g,d;charmp[510][510];signedmain(){ios::sync_with_stdio(0);cin>>n>>m;for(inti=1;i<=n;i++){st[i].insert(-1e4);st[i].insert(1e4);for(intj=1;j<=m;j++){cin>>mp[i][j];if(mp[i][j]=='x')st[i].insert(j);}}cin>>g;if(n*g==5e7)d=20;elsed=130;for(inti=1;i<=g;i++){intx,y,minl=1e9;cin>>x>>y;for(intj=max(1,x-d);j<=min(n,x+d);j++){intl=*(--st[j].upper_bound(y)),r=*st[j].lower_bound(y);minl=min(minl,(x-j)*(x-j)+(y-l)*(y-l));minl=min(minl,(x-j)*(x-j)+(y-r)*(y-r));}cout<<minl<<"\n";st[x].insert(y);}}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.jsqmd.com/news/677658/

相关文章:

  • 2026年4月最新欧米茄官方售后网点核验报告:亲测实地考察+多方横评+避坑指南(含迁址新开) - 亨得利官方服务中心
  • FortiOS 7.0 HA配置避坑指南:从‘不同步’到绿灯全亮的五个关键检查点
  • 告别yum install pcre:详解Nginx编译时--with-pcre选项的三种用法与选择建议
  • 基于Spring Cloud微服务架构的智慧医疗平台:构建高可用医院信息系统的完整指南
  • 天龙八部GM工具:5分钟掌握可视化游戏管理终极指南
  • 易拉罐破碎机厂家扎堆华东,为何 能脱颖而出? - 新闻快传
  • 2026 年重庆市九龙坡区汽车贴膜全攻略:从选型到落地一站式指南 - 速递信息
  • STM32F429的“免费GPU”:DMA2D模块详解与在TouchGFX中的实战配置
  • 3分钟快速上手:Fiji图像处理软件新手完全指南
  • PyTorch全连接层实战:从图像分类到文本处理的5个经典案例
  • 别再乱接线了!STM32F4与HC-05蓝牙模块通信,从AT指令调试到手机APP控制小车的保姆级避坑指南
  • 2026年 新升级为1区的期刊名单已出!附最新《新锐期刊分区表》完整版EXCEL
  • 2026年湖南高端别墅装修设计一体化定制指南 - 年度推荐企业名录
  • 用Mixin给MC动个小手术:手把手教你将地狱门黑曜石替换成木头(Forge 1.12.2)
  • 联想拯救者笔记本终极性能优化指南:3步解锁隐藏性能潜力
  • 统信UOS远程连接工具:从内网到公网的全场景实战指南
  • 告别命令行恐惧:在Linux上为Java 11手动添加JavaFX模块的保姆级教程
  • 考研失败后转留学,深圳硕士申请留学机构推荐 - 品牌2026
  • Flutter Widgets 怎么入门?新手如何快速上手 Widgets?
  • 闲置分某乐携程卡套装回收方式推荐 - 京顺回收
  • 我被一个日期格式bug坑了,全球用户的时间全错了
  • 避坑指南:AT32/STM32内部Flash模拟EEPROM,这些细节不注意数据会丢
  • 基于Django+Vue3与YOLO深度学习的火灾烟雾智能监测系统采用Django+Vue3前后端分离架构,含用户端与管理端界面,具备监控区域管理、火情记录归档、任务管理、智能问答、数据大屏、记录导出
  • Multisim里那些新手必踩的坑:从元件库找不到型号到仿真结果不对,一篇讲清避坑指南
  • 别下716GB了!用这个18GB的Light-HaGRID手势数据集,快速上手YOLOv5训练
  • Hermes Agent 使用与启动指南
  • 2026年值得合作的进口喉镜优质供应商推荐 - 品牌推荐大师1
  • 实地探访:四流喂丝机工厂在华北的布局,为何选择与 合作? - 新闻快传
  • LumenPnP开源贴片机完整指南:如何打造你的专属电子制造工作站
  • AI教材编写必备!低查重AI工具,轻松生成高质量教材内容!