前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【计算机本科补全计划】CCF计算机职业资格认证 2016-09 试题详解

【计算机本科补全计划】CCF计算机职业资格认证 2016-09 试题详解

作者头像
用户1687088
发布2018-05-07 17:21:14
8500
发布2018-05-07 17:21:14
举报
文章被收录于专栏:工科狗和生物喵

正文之前

我要东山再起了!!没错CCF迫在眉睫(其实是我以为报名之后一个月才考,结果报名截止之后一周就考试!(╯‵□′)╯︵┻━┻!!!还能好好做朋友吗!!)所以今天火急火燎的就开始写题目了!结果,二十分钟写出第一题,40分钟写第二题结果大错特错,数组全他么越界了!烦躁! 不就是一阵子没用C++了。怎么我现在这么菜!!????!!

正文

1、201609-1

试题编号:

201609-1

试题名称:

最大波动

时间限制:

1.0s

内存限制:

256.0MB

问题描述

小明正在利用股票的波动程度来研究股票。小明拿到了一只股票每天收盘时的价格,他想知道,这只股票连续几天的最大波动值是多少,即在这几天中某天收盘价格与前一天收盘价格之差的绝对值最大是多少。

输入格式

输入的第一行包含了一个整数n,表示小明拿到的收盘价格的连续天数。

第二行包含n个正整数,依次表示每天的收盘价格。

输出格式

输出一个整数,表示这只股票这n天中的最大波动值。

样例输入

6

2 5 5 7 3 5

样例输出

4

样例说明

第四天和第五天之间的波动最大,波动值为

3-7

评测用例规模与约定

对于所有评测用例,2 ≤ n ≤ 1000。股票每一天的价格为1到10000之间的整

我的代码展示:

  • 问题描述

小明正在利用股票的波动程度来研究股票。小明拿到了一只股票每天收盘时的价格,他想知道,这只股票连续几天的最大波动值是多少,即在这几天中某天收盘价格与前一天收盘价格之差的绝对值最大是多少。

  • 输入格式

输入的第一行包含了一个整数n,表示小明拿到的收盘价格的连续天数。 第二行包含n个正整数,依次表示每天的收盘价格。

  • 输出格式

输出一个整数,表示这只股票这n天中的最大波动值。

  • 样例输入

6 2 5 5 7 3 5

  • 样例输出

4

  • 样例说明
  • 第四天和第五天之间的波动最大,波动值为

3-7评测用例规模与约定

  • 对于所有评测用例,2 ≤ n ≤ 1000。股票每一天的价格为1到10000之间的整

我的代码展示:

代码语言:javascript
复制
#include <iostream>
#include <vector>
using namespace std;

int abs(int x)
{
    if(x<0)
        x=-x;
    return x;
}


int main()
{   
    int num;
    cin>>num;
    int x=1,wave=0;
    int pre=0,p=0;
    cin>>pre;
    while(x<num-1)
    {
        cin>>p;
        if(wave<abs(p-pre))
            wave=abs(p-pre);
        pre=p;
        ++x;
    }
    cout<<wave<<endl;

    return 0;
}

运行结果:

代码语言:javascript
复制
Last login: Mon Nov 27 19:39:57 on ttys000
HustWolf:~ zhangzhaobo$ /Users/zhangzhaobo/program/C++/CCF_2016_09_1 ; exit;
6
2 5 5 7 3 5
4
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[进程已完成]

2、 201609-2

试题编号:

201609-2

试题名称:

火车购票

时间限制:

1.0s

内存限制:

256.0MB

问题描述

请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。

假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。

购票时,一个人可能购一张或多张票,最多不超过5张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在编号最小的几个空座位中(不考虑是否相邻)。

假设初始时车票全部未被购买,现在给了一些购票指令,请你处理这些指令。

输入格式

输入的第一行包含一个整数n,表示购票指令的数量。

第二行包含n个整数,每个整数p在1到5之间,表示要购入的票数,相邻的两个数之间使用一个空格分隔。

输出格式

输出n行,每行对应一条指令的处理结果。

对于购票指令p,输出p张车票的编号,按从小到大排序。

样例输入

4

2 5 4 2

样例输出

1 2

6 7 8 9 10

11 12 13 14

3 4

样例说明

1) 购2张票,得到座位1、2。

2) 购5张票,得到座位6至10。

3) 购4张票,得到座位11至14。

4) 购2张票,得到座位3、4。

评测用例规模与约定

对于所有评测用例,1 ≤ n ≤ 100,所有购票数量之和不超过100。

我的答案代码~~

  • 问题描述

请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。 假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。 购票时,一个人可能购一张或多张票,最多不超过5张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在编号最小的几个空座位中(不考虑是否相邻)。 假设初始时车票全部未被购买,现在给了一些购票指令,请你处理这些指令。

  • 输入格式

输入的第一行包含一个整数n,表示购票指令的数量。 第二行包含n个整数,每个整数p在1到5之间,表示要购入的票数,相邻的两个数之间使用一个空格分隔。

  • 输出格式

输出n行,每行对应一条指令的处理结果。 对于购票指令p,输出p张车票的编号,按从小到大排序。

  • 样例输入

4 2 5 4 2

  • 样例输出

1 2 6 7 8 9 10 11 12 13 14 3 4

  • 样例说明

1) 购2张票,得到座位1、2。 2) 购5张票,得到座位6至10。 3) 购4张票,得到座位11至14。 4) 购2张票,得到座位3、4。

  • 评测用例规模与约定

对于所有评测用例,1 ≤ n ≤ 100,所有购票数量之和不超过100。 我的答案代码~~

代码语言:javascript
复制
#include <iostream>
using namespace std;

void BuyTicket(int a[20][5],int Tickets)
{
    int (*p)[5]=a;
    bool flag=false;
    for(int i=0;i<20;++i)
    {
        int *q=*p;
        if(q[5-Tickets]==0)
        {
            for(int z=0;z<5;++z)
            {
                if(q[z]==0 && Tickets!=0)
                {
                    q[z]=1;
                    --Tickets;
                    cout<<5*i+z+1<<" ";
                }
            }
            cout<<endl;
            flag=true;
            break;
        }
        ++p;
    }
    if(!flag)
    {
        int (*m)[5]=a;
        for(int i=0;i<20;++i)
        {
            int *q=*m;
            for(int n=0;n<5;++n)
            {
                if(q[n]==0 && Tickets!=0)
                {
                    q[n]=1;
                    --Tickets;
                    cout<<5*i+n+1<<" ";
                }
            }
        }

    }


}


int main()
{
    int num,Tickets;
    int a[20][5];
    for(int i=0;i<20;++i)
        for(int j=0;j<5;++j)
            a[i][j]=0;
    cin>>num;
    for(int i=0;i<num;++i)
    {
        cin>>Tickets;
        cout<<i+1<<" : ";
        BuyTicket(a,Tickets);
    }
    cout<<"\n=============\n\n";
    for(auto p=begin(a);p!=end(a);++p)
    {   
        for(auto q=begin(*p);q!=end(*p);++q)
        {
            if(*q!=0)
                cout<<"* | ";
        }
        cout<<endl;
    }
    return 0;
}

运行结果:

代码语言:javascript
复制
Last login: Mon Nov 27 23:19:39 on ttys000
HustWolf:~ zhangzhaobo$ /Users/zhangzhaobo/program/C++/CCF_2016_09_2 ; exit;
24
1 2 4 5 2 3 4 1 2 4 5 2 3 4 1 2 4 5 2 3 4 1 2 4 5 2 3 4 
1 : 1 
2 : 2 3 
3 : 6 7 8 9 
4 : 11 12 13 14 15 
5 : 4 5 
6 : 16 17 18 
7 : 21 22 23 24 
8 : 10 
9 : 19 20 
10 : 26 27 28 29 
11 : 31 32 33 34 35 
12 : 36 37 
13 : 38 39 40 
14 : 41 42 43 44 
15 : 25 
16 : 46 47 
17 : 51 52 53 54 
18 : 56 57 58 59 60 
19 : 48 49 
20 : 61 62 63 
21 : 66 67 68 69 
22 : 30 
23 : 64 65 
24 : 71 72 73 74 

=============

* | * | * | * | * | 
* | * | * | * | * | 
* | * | * | * | * | 
* | * | * | * | * | 
* | * | * | * | * | 
* | * | * | * | * | 
* | * | * | * | * | 
* | * | * | * | * | 
* | * | * | * | 
* | * | * | * | 
* | * | * | * | 
* | * | * | * | * | 
* | * | * | * | * | 
* | * | * | * | 
* | * | * | * | 





logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[进程已完成]

善做主张加了点东西,好看了不少,不然就那逼样,实在是美观欠奉啊!~~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 工科狗和生物喵 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正文之前
  • 正文
    • 1、201609-1
    • 2、 201609-2
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档