zoukankan      html  css  js  c++  java
  • XidianOJ 1086 Flappy v8

    题目描述

    大家都知道flappy bird,对于那个到处乱蹦死了重来的小鸟,V8表示不服,于是自己变成了一个会飞的物种,为了表示对鸟类的尊重我就不说他是鸟了。V8飞行过程中,每次点击屏幕会向上飞一个单位,并且是瞬间上升(他为啥这么屌我也不知道),也就是t秒初的时候高度就已经上升完毕了,而不点击屏幕的时候会自然下降一个单位,方式同上。这个和flappy bird的斜上斜下是不一样的,要注意。
    V8的飞行速度为水平方向1单位/秒,并且这里有一些柱子,告诉你悬挂的柱子底端距离地面的距离及距离出发点的距离,所有的柱子都是悬挂的,柱子的直径忽略不计。现在给你一个操作序列,每秒一个操作,0表示不操作,1表示点击屏幕,如果V8撞到柱子了或者摔到屁股了,输出挂掉的时间t,如果他顺利通过关卡,输出 ”V8Orz”。

    输入

    多组输入输出
    第一行一个T,表示数据的组数。
    之后对于每组数据,第一行一个整数n(n<1001),表示时间序列的长度。
    第二行有n个数的0/1序列,表示操作的序列。
    第三行一个整数m(m<=n),表示柱子的个数。
    第四行有m个整数,第i个数表示第i个柱子的底端距离地面的高度。
    第五行有m个整数,第i个数表示第i个柱子的位置,可以和时间序列对应,坐标从0开始
    第六行有一个整数h,表示V8初始高度,时间从0开始
    保证所有数据小于INT_MAX。

    输出

    每组数据一行输出,如果成功通过关卡,输出“V8Orz”,;否则输出V8夭折的时间。

    --正文
    看着挺复杂,其实很水,数据范围也特别小
    每一步检查一下当前高度是否合法就好
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <cstdlib>
    #include <vector>
    using namespace std;
    typedef long long LL;
    #define SIZE 1002 
     
    int order[SIZE]; 
    int height;
    
    struct ZhuNode{
        int Time;
        int Height;
    };
    struct ZhuNode Zhuzi[SIZE];
    int MaxHeight[SIZE];
    int n,m;
    
    void game(int sec){
        if (order[sec] == 0){
            height --;
        }
        else {
            height ++;
        }
        if (height <= 0 || height >= MaxHeight[sec]){
            printf("%d
    ",sec);
            return;
        }
        else {
            if (sec+1 == n) {
                printf("V8Orz
    "); 
            }
            else {
                game(sec+1);
                return;
            }
        }
    }
    
    int main(){
        int time,T;
        scanf("%d",&T);
        for (time=1;time<=T;time++){
            scanf("%d",&n);
            int i,j;
            for (i=0;i<n;i++){
                scanf("%d",&order[i]);
            }
            memset(MaxHeight,0x3f,sizeof(MaxHeight));
            scanf("%d",&m);
            for (i=0;i<m;i++){
                scanf("%d",&Zhuzi[i].Height);
            }
            for (i=0;i<m;i++){
                scanf("%d",&Zhuzi[i].Time);
                MaxHeight[Zhuzi[i].Time] = Zhuzi[i].Height;
            }
            scanf("%d",&height);
            game(0);
        } 
        return 0;
    }
  • 相关阅读:
    通过按键实现LED灯的亮灭(含两种情况)
    让大疆去做测绘---航线规划软件APP
    GPIOLED配置、key、中断NVIC配置
    使用指针的指针对字符串排序
    使用指针输出数组元素
    使用指针创建数组
    求输出此日期是该年的第几天
    婚礼上的谎言/百元买白鸡
    使用指针的指针对字符串排序
    实例168 使用指针输出数组元素
  • 原文地址:https://www.cnblogs.com/ToTOrz/p/6126968.html
Copyright © 2011-2022 走看看