问题 J: 贪吃蛇吃苹果
时间限制: 1 Sec  内存限制: 128 MB

题目描述
贪吃蛇(也叫做贪食蛇)游戏是一款休闲益智类游戏,有PC和手机等多平台版本。既简单又耐玩。该游戏通过控制蛇头方向吃苹果,从而使得蛇变得越来越长。贪吃蛇游戏最初为单机模式,后续又陆续推出团战模式、赏金模式、挑战模式等多种玩法。 
游戏规则:                                                                                        
用游戏按键上下左右控制蛇的方向,寻找吃的东西,每吃一口就能得到一定的积分,而且蛇的身子会越吃越长,每吃一个苹果身体长度加1(蛇的增长方式是蛇尾离开苹果位置后蛇尾长度+1),身子越长玩的难度就越大,不能碰墙,不能咬到自己的身体,更不能咬自己的尾巴。


MCA同学自己写了一个贪吃蛇游戏,既然是自己写的当然可以自定义游戏网格的大小(n行m列)还能知道初始贪吃蛇的位置(x , y)和接下来k个苹果依次出现的位置(xi , yi )。蛇的初始长度是1。MCA同学的贪吃蛇游戏和传统贪吃蛇游戏不一样的地方是苹果可能出现在蛇身体上(必须待身体离开苹果才能吃,否则会撞到身体),蛇头部经过的苹果也可以选择不吃,但是不吃下一个苹果永远不会出现,必须按顺序吃掉苹果。 
注意如果k个苹果都吃掉以后不会再出现新的苹果。 
现在MCA同学想知道贪吃蛇最多能吃多少个苹果且贪吃蛇能永远存活下去,即吃掉最多N个苹果后贪吃蛇能在接下来无穷的时间中不撞墙且不撞到自己的身体。

输入
第一行输入两个整数 n m (n>=2,m>=2,n*m<=100000), 表示游戏网格大小n行m列 
第二行输入两个整数 x y ( 1<=x<=n , 1<=y<=m),表示初始蛇的位置,第x行第y列 
第三行输入一个整数 k (1<=k<=n*m),表示依次出现的苹果数量 
接下来k行输入 xi , yi ,表示依次出现的苹果的坐标,第xi行,第yi列

输出
       一个整数N表示最多能吃多少个苹果。

样例输入
2 2
1 1
3
1 1
1 1
1 1

样例输出
3

提示
下面再给出一组样例 
Input2: 
2 3 
2 3 

1 1 
2 2 
2 3

Output2: 
3

思路

题目看似复杂,实则规律题(规律还有问题)

如果边长都不为奇数 , 那么从任意一点都能将整个网络跑遍且一直循环下去 。即可以达到网络上所有的苹果当且仅当长度不超过网络总格子的大小。

如果边长都为奇数, 那么从任意一点出发总有一个格子不能跑遍且一直循环下去。即可以达到网络上所有的苹果当且仅当长度不超过网络总格子大小减一 。(我觉得这里有问题,但是答案就是对的,如果每个格子都有苹果,那是不是一定会有一个吃不到,如果苹果都在一个格子,那么是不是一定都能吃到当且仅当长度小于格子数减一)

#include <bits/stdc++.h>
using namespace std;int main(){int n,m,x,y,k,ans;cin >> n >> m ;cin >> x >> y ;cin >> k ;for (int i = 0 ; i < k ; i++) {cin >> x >> y ;}if (n&1 && m&1){ans = min(n*m-2,k);} else {ans = min(n*m-1,k);}cout << ans ;return 0;
}/**************************************************************Problem: 2293User: 21XXXXXXXXLanguage: C++Result: 正确Time:61 msMemory:2024 kb
****************************************************************/

HNUST OJ 2293 贪吃蛇吃苹果相关推荐

  1. Python游戏开发,Python实现贪吃蛇小游戏与吃豆豆 附带源码

    开发工具 Python版本: 3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理简介 贪吃蛇 ...

  2. Pygame实战项目:用300行代码写出贪吃蛇小游戏

    贪吃蛇是一款逻辑清晰.操作简单.老少咸宜.备受欢迎的休闲小游戏. 下面就给大家介绍一下贪吃蛇游戏的基本原理,以及实现贪吃蛇所需要的相关方法. 一.主要思路 我们的贪吃蛇游戏将主要包括三个核心模块,分别 ...

  3. 用Excel制作贪吃蛇

    此文章最先发布于我的博客 废话不多说,先放成果.在GitHub上查看源代码 . 开始编写 阅读此教程,你需要了解 什么是VBA,对VBA初步了解 如何在Excel中编辑VBA,并启用它 否则请另行百度 ...

  4. 基于linux的贪吃蛇游戏设计_贪吃蛇还能这么玩?绝对是你从未体验过的全新版本(上)...

    上个月 Gitee 宣布推出「Python 贪吃蛇魔改大赛」的活动,受到了众多开发者们的欢迎.半个多月后,我们收到了共计 42 个参赛作品,有的作品创意无限,有的作品视觉效果极佳,看看下面的作品一览, ...

  5. OpenCV进阶(3)基于OpenCV的贪吃蛇游戏

    在这篇文章中,我们将使用Python和OpenCV创建贪吃蛇游戏. 1.贪吃蛇游戏 在贪吃蛇游戏中,我们使用箭头键控制数字蛇. 一个苹果随机出现在屏幕上,我们的目标是移动蛇,让它吃苹果.蛇在吃了苹果后 ...

  6. 贪吃蛇还能这么玩?绝对是你从未体验过的全新版本(上)

    上个月 Gitee 宣布推出「Python 贪吃蛇魔改大赛」的活动,受到了众多开发者们的欢迎.半个多月后,我们收到了共计 42 个参赛作品,有的作品创意无限,有的作品视觉效果极佳,看看下面的作品一览, ...

  7. JAVA练习小游戏——贪吃蛇小游戏 PLUS版

    目录 基础版本 新增内容 1.添加START开始界面 2.新增背景音乐 3.添加SCORE计分 4.新增游戏机制 代码实现 实机演示 基础版本 JAVA练习小游戏--贪吃蛇小游戏_timberman6 ...

  8. 用c语言编一个贪吃蛇,刚学C语言,想写一个贪吃蛇的代码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include typedef struct snake { int a; int b; stru ...

  9. c语言贪吃蛇编写分析,刚学C语言,想写一个贪吃蛇的代码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include typedef struct snake { int a; int b; stru ...

最新文章

  1. 苹果裁员逾200人,拿无人驾驶“开刀”
  2. ubuntu root用户没有声音(提示”正在等待声音系统响应”)
  3. linux用dd测试磁盘速度
  4. mybatis关联配置(一对多配置)
  5. Power BI新主页将使内容的导航和发现变得轻而易举!
  6. git 在ssh情况下提交代码
  7. 试卷8449c 语言,二级C语言上机题库参考答案
  8. 怎么清洁计算机主机内部,详细说明清理网吧中计算机主机的正确方法
  9. js实现关于分页的一种实现方式
  10. 太慢不能忍,CPU 拿硬盘和网卡开刀了!
  11. Windows下Xelatex的使用
  12. MATLAB强化学习实战(十) 多智能体的路径跟随控制
  13. 神经网络学习笔记4:CPN网络的实现
  14. IE里面的画笔---VML(Vector Markup Language)入门之一
  15. Vue Vant点赞效果
  16. python学习笔记十-文件操作
  17. SystemVerilog中的Events事件
  18. 求数组排序后相邻数的最大差值
  19. OpenCV之图像ROI与ROI操作
  20. 网络舆情信息怎么报送的流程

热门文章

  1. CREO二维CAD图纸导出1:1比例导出,单位为mm
  2. 猫咖小程序开发有何优势?具备什么功能版块?
  3. 读《富爸爸,穷爸爸》后感(三)
  4. 抖客联盟API如何申请?
  5. python的秘密_Shamir秘密共享方案 (Python)
  6. 小程序图片底部留白问题
  7. linux 时间设置的坑,linux 配置定时任务crontab碰到的坑sendmail
  8. 【Python机器学习】标注任务与序列问题讲解(图文解释)
  9. 制作思维导图的要点总结
  10. 【Python服务生活系列--2】实现WPS Office付费功能 word转换纯图pdf