郑厂长没变
还是那个假厂长真码农改变的是业余爱好
他现在不研究象棋,改玩游戏了!

最近,郑厂长爱上了逃离迷宫这个游戏,他日日夜夜的玩,就是想达到自己的目标:1000万,因为这个数字和他在腾讯的年收入一样多。
不过,在他跑到9999999时,游戏屏幕上突然出现了好多箱子,郑厂长必须要消除所有这些箱子才能继续玩游戏。这些箱子排
成一行,每个箱子一都有个数字,每个数字代表这个箱子需要被点
击的次数才会消失。每个箱子被点击时对应数字会减1,并且他右边箱子的数字也会同时减1,当箱子数字变成o,则其就就消失了。需要说明的是,如果右边没有箱子或者右边的箱子已经消失了,则无法操作当前的箱子(以上所说的“右边”只是指紧挨着的右边,隔开的不算)。
现在已知这些箱子的信息,请问郑厂长是否能成功消除所有的箱子然后继续达成他的千万梦想呢?

Input
输入首先包含一个正整数T,表示有T组测试样例;
每组样例有两行,第一行是一个整数n,代表有n个箱子;第二行有 n个数字ai,代表每个箱子需要被点击的次数。

解析题目:此题对于箱子的要求是,右手的箱子在当前的箱子被点完之后的次数需要大于等于零,当进行到倒数第二个箱子的时候,右手边的箱子也就是最后一个,必须要在这个时候被点完,因为最后一个箱子是没有右手边的箱子的,所以不能进行。

将每个箱子需要点击的次数存到一个数组cleak中,每一个对应的都是相应的箱子

综上所述有以上几点

1、将箱子只有一个的情况单独列举出来,如果箱子数量为零,则可以直接通过,否则就无法通过

2、遍历每一个箱子,比较当前箱子和右边箱子的点击次数大小,并利用flag做标记,如果右边箱子点击次数小于当前箱子,修改flag的值。如果右边箱子点击次数大于当前箱子,那么使用右边箱子的点击次数减去当前箱子,不修改flag的值。

代码实现如下

#include <stdio.h>
#include <string.h>
int main()
{int T = 0;scanf("%d", &T);long int cleak[100010];while (T != 0){T--;int num = 0;scanf("%d", &num);int flag = 1;for (int i = 1; i <= num; i++)//此处的i从1开始,因为想让下标对应到箱子的次序{scanf("%d", &cleak[i]);}cleak[0] = 0;if (num == 1)//此处是对于箱子数目只有1的情况进行处理{if (cleak[1] == 0)printf("yeah~ I escaped ^_^\n");elseprintf("I will never go out T_T\n");}else{for (int i = 0; i < num; i++)//i为需要点击的箱子,最后一个箱子并不需要点击,所以不进行遍历{if (cleak[i + 1] < cleak[i]){flag = 0;break;}cleak[i + 1] -= cleak[i];}if (cleak[num] != 0)//如果最后一个箱子的点击次数在倒数第二个箱子被点击的时候没有归零//那么就不能逃脱flag = 0;if (flag)printf("yeah~ I escaped ^_^\n");elseprintf("I will never go out T_T\n");}}
}

郑厂长系列故事——逃离迷宫(C语言)相关推荐

  1. hdu 4524 郑厂长系列故事——逃离迷宫

    点击打开链接 郑厂长系列故事--逃离迷宫                                                                               T ...

  2. 杭电4524-郑厂长系列故事——逃离迷宫

    郑厂长系列故事--逃离迷宫 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  3. 排兵布阵问题java语言_hdu 4539 郑厂长系列故事——排兵布阵

    郑厂长系列故事--排兵布阵 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) T ...

  4. HDU4509 郑厂长系列故事——体检【水题】

    郑厂长系列故事--体检 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Sub ...

  5. HDU 4539郑厂长系列故事――排兵布阵(状压DP)

    HDU 4539  郑厂长系列故事――排兵布阵 基础的状压DP,首先记录先每一行可取的所哟状态(一行里互不冲突的大概160个状态), 直接套了一个4重循环居然没超时我就呵呵了 1 //#pragma ...

  6. hdu4539 郑厂长系列故事——排兵布阵 + POJ1158 炮兵阵地

    题意: 郑厂长系列故事--排兵布阵 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Other ...

  7. 郑厂长系列故事——排兵布阵 状态压缩DP

    郑厂长系列故事--排兵布阵 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) T ...

  8. hdu 4539 郑厂长系列故事——排兵布阵

    郑厂长系列故事--排兵布阵 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) T ...

  9. HDU 4539 郑厂长系列故事――排兵布阵(状态压缩)

    郑厂长系列故事--排兵布阵 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) T ...

最新文章

  1. Android中常用的距离单位
  2. 获取指定日期所属年份的第一天日期或最后一天日期
  3. cs231n图像分类笔记(上)学习记录
  4. 中控考勤机无线连接不上服务器,中控考勤机安装及常见问题【图解】
  5. 如何压缩jpg图片的大小?
  6. 用Excel 随机抽取不重复n行数据
  7. 【微信公众号-订阅号发送群发消息】
  8. STM32中使用MMA7660重力加速度传感器
  9. Unity + LeapMotion 识别食指伸出以及食指与 UGUI的 交互
  10. 基于python的 ping 网络状态监测方法 亲测有效
  11. 招商银行一网通支付(php接入招商银行一网通支付)
  12. 基于 Python 的地理空间绘图指南
  13. 一键查询微信加过那些群聊
  14. apple IDP 个人账户升级到公司账户(转)
  15. Fe原子辐照轰击多层石墨烯模拟代码
  16. vue支付宝html,Vue的H5页面唤起支付宝支付功能
  17. 冒险、卡牌、养成类游戏的设计要点
  18. 从Visual Studio看微软20年技术变迁
  19. 高温加重精神症状!好心情提醒患者做好10点防护
  20. watchOS 4 教程(2):表格

热门文章

  1. 某K字头运动软件逆向分析-课程精讲
  2. win2000 java,月光软件站 - 编程文档 - Java - win2000下jsp环境配置
  3. python 抽奖 配音乐,用Python演奏音乐
  4. 虚拟主机使用phpmailer发送邮件
  5. Ezpad 6s pro安装xubuntu
  6. 每天学点统计学——平均
  7. python爬虫爬取百度图片总结_python爬虫如何批量爬取百度图片
  8. 计算机本科生如何入手一些项目?
  9. 使用josm绘制室内地图及路径(二)
  10. 流媒体服务器搭建之Live555