问题 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. 解决非controller使用@Autowired注解注入报错为java.lang.NullPointerException问题
  2. 找出出现次数最多的字母
  3. Codeforces 471 D MUH and Cube Walls
  4. 互利网上数字金融典型场景: 消费金融
  5. 在VC中如何将float型转换成字符数组
  6. freertos fatfs s32k 云_云的英语表达方式
  7. 使用数据库DEAP来分析基于EEG信号的情绪论文调研汇总
  8. 瑞萨RH850芯片在IAR和CS+编译环境下设置堆(heap)和栈(stack)的大小
  9. 抹机王怎么一键新机_ir新机工具箱手机版下载-ir新机抹机王盒子v5.6.6 免登陆版-007游戏网...
  10. 用Visio画流程图
  11. sendto()函数
  12. Nuxt.js重定向路由方式
  13. ps换脸教程:ps换脸教程步骤具体,怎样选择复制层
  14. RC电路的充放过程C语言实现,RC电路的瞬态和稳态过程
  15. 我的优点是会使用计算机用英语怎,优点用英语,我的50个优点。
  16. 【弄nèng - Zookeeper】Zookeeper入门教程(三)—— 客户端Curator的基本API使用(Curator framework)
  17. 1040 有几个PAT (25分)
  18. lbaas l7 policy
  19. MVG学习笔记(5) --四视图几何和n视图重建
  20. 明星直播的品牌效应,这几个关键数据你一定要知道!

热门文章

  1. 手机共享笔记本wifi热点
  2. 关于React报Too many re-renders. React limits the number of renders to prevent an infinite错误的解决方案
  3. JS中如何让某个动作延迟几秒执行(☆)
  4. Nginx常用rewrite跳转重定向实例
  5. Window 10将内置眼球追踪技术
  6. 深入产品线的配置管理
  7. 金蝶osf接口开发_调用OSF接口取待办任务总数报错!急
  8. aspen压缩因子_利用aspen plus进行物性参数的估算讲解
  9. js 获取当前日期的前三个月
  10. VPN 虚拟专用网络隧道