【大坑特坑】第六届华为“创新杯”编程大赛初赛题目(第五场)

简直没法吐槽华为的服务器质量了,登一次半小时,提交一次等半小时,然后第二个题的结果还不知道呢,服务器就挂了。。。

题目本身倒是还挺简单的。

A题是鸡兔同笼问题:

给出鸡和兔子的头数和脚数(可能不对),让你判断鸡的个数和兔子的个数。。小学经典问题。

关键是不合法的情况,总共有4种。

1、头比脚多。。

2、脚是奇数= =

3、脚>4*头或者脚<2*头.

so.出来了。

#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;

int r,d;
void solve(int n,int m)
{
    r=m/2-n;
    d=n-r;
    cout<<"1 "<<d<<" "<<r<<endl;
}

int main()
{
    int h,f;
    cin>>h>>f;
    if(f%2!=0 || h>=f ||f<2*h||f>4*h)
        cout<<"0 0 0"<<endl;
    else
        solve(h,f);
    return 0;
}

第二个题则不知道对不对了,因为判了半个小时还tm不出结果。。

大意是一种传输数据的格式,分成三段:tag(4字节)、length(两字节)、data区(和length的长度相等),都采用连续的十六进制数表示传输流,问按tag排序之后的数据流结果。

感觉属于考察字符串切割和进制转换的题,如果有错误的话,可能是对非法的情况判断的还不够吧。

过大多数还是没问题的,反正也不知道结果- -

代码:

#include <iostream>
#include <cstring>
#include <string>
#include <cstdlib>
#include <algorithm>
using namespace std;

class TLV
{
public:
    string tagstr;
    int tag;
    int length;
    string lengthstr;
    string value;
};

bool cmp(TLV a,TLV b)
{
    return a.tag<b.tag;
}

int main()
{
    TLV pack[1009];
    string tar;
    cin>>tar;

    int pos=0,count=0;
    int p=0;
    while(pos<tar.size())
    {
        string tagcut,lengthcut,valuecut;

        //cout<<p<<endl;
        for(int i=pos;i<=pos+7;i++)
        {
            tagcut+=tar[i];
        }
        pack[p].tagstr=tagcut;
        for(int i=pos+8;i<=pos+11;i++)
        {
            lengthcut+=tar[i];
        }
        pack[p].lengthstr=lengthcut;

        pack[p].tag=strtol(pack[p].tagstr.c_str(),NULL,16);
        pack[p].length=strtol(pack[p].lengthstr.c_str(),NULL,16);
        for(int i=pos+12;i<pos+12+(pack[p].length*2);i++)
        {
            if(pos+12+(pack[p].length*2)>tar.size())
            {
                cout<<"msgerr"<<endl;
                return 0;
            }
            valuecut+=tar[i];
        }
        pack[p].value=valuecut;
        cout<<pack[p].tagstr<<" is: "<<pack[p].lengthstr<<endl;
        cout<<pack[p].tag<<"isnum:"<<pack[p].length<<"value is"<<pack[p].value<<endl;
        pos+=(12+(pack[p].length*2));
        p++;
    }
    sort(pack,pack+p,cmp);
    for(int i=0;i<p;i++)
    {
        cout<<pack[i].tagstr<<pack[i].lengthstr<<pack[i].value;
    }
    cout<<endl;
    return 0;
}

【大坑特坑】第六届华为“创新杯”编程大赛初赛题目(第五场)

时间: 2024-10-25 04:58:33

【大坑特坑】第六届华为“创新杯”编程大赛初赛题目(第五场)的相关文章

第六届华为创新杯编程大赛-进阶1第1轮

洞穴逃生 描述: 精灵王子爱好冒险,在一次探险历程中,他进入了一个神秘的山洞.在洞穴深处,精灵王子不小心触动了洞穴内暗藏的机关,整个洞穴将很快塌陷,精灵王子必须尽快逃离洞穴.精灵王子的跑步速度为17m/s,以这样的速度可能是无法逃出洞穴的.庆幸的是精灵王子拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点.精灵王子的魔法值恢复的速度为4点/s,只有处在原地休息状态时才能恢复. 现在已知精灵王子的魔法初值M,他所在洞穴中的位置与洞穴出口之间的距离S,距离洞穴塌陷的时间T.

第六届华为创新杯编程大赛第二轮(2014.4.29)

第一题:外星人比数的大小 来自星星的都教授除了所有感官比地球人高出七倍,始终容颜不老以外,还拥有一项在地球人看来特别神奇的能力,他会瞬间(0.00000000000000000000001s以内)按照他的规则比较地球人熟悉的两个十进制数字的大小,他比较的规则如下:1.将要比较的两个数字分别转换成二进制数字:2.计算两个二进制数字中1的个数,个数多的数字为两者中的大者:3.负数按照其绝对值进行比较:请利用地球人发明的计算机程序逼近都教授的特异功能,实现时可以有以下约束:1.输入数据为范围在-327

第六届华为创新杯编程大赛-进阶1第3轮

题目忘记粘贴了,题目大致意思就是笨笨熊要搬家.它如今的家在B点,新的豪宅在H点.如今要从B点到H点 地图R表示行,C表示列.当中: -表示能通过 #表示不能通过 B表示笨笨熊原来的家 H表示笨笨熊的新豪宅 输入 R C R×C矩阵 输出 Y//表示能够通过 N//表示不能够通过 解析:本来这道题非常明显.非常easy的搜索嘛,可是不知道是由于自己非常长时间不写搜索了还是怎么回事,一直在改代码,最后在超过时间给提交上去了,可是最后居然还返回分数了,完美AC哈. 直接贴个代码 #include <i

第六华为创新杯程序设计大赛-先进1文章1圆

洞穴逃生 叙述性说明: 精灵王子冒险.在探险的过程中,他进入一个神奇的洞穴.在洞穴深处.精灵王子不小心碰到隐藏的洞穴器官,整个洞穴将很快崩溃,精灵王子必须从洞穴尽可能快地逃离.运行速度的精灵王子17m/s,以这种速度可能是无法逃出洞穴的.庆幸的是精灵王子拥有闪烁法术.可在1s内移动60m,只是每次使用闪烁法术都会消耗魔法值10点.精灵王子的魔法值恢复的速度为4点/s,仅仅有处在原地歇息状态时才干恢复. 如今已知精灵王子的魔法初值M.他所在洞穴中的位置与洞穴出口之间的距离S,距离洞穴塌陷的时间T.

2014第六届华为编程大赛初赛第一轮

/*********************************************************************** 1.投票问题 输入若干候选人,以及投票,格式如下,输出(按输入候选人输入顺序)候选人以及得票,以及 无效票数. Input: addCandidate xx1 addCandidate xx2 addCandidate xx3 addCandidate xx4 addCandidate xx5 addCandidate xx6 vote xx2 vot

2014第六届华为编程大赛初赛第四轮

/*********************************************************************** 第一题 求n个整数的最大公约数 输入 第一行: n个整数 第二行:各个整数 以空格隔开 输出:公约数 例子: input: 4 10 15 20 25 output: 5 **********************************************************************/ #include <stdio.h>

2015微软创新杯Imaginecup大赛报名进行中(报名截止2014年12月31日23:59)

CSDN高校俱乐部与微软官方合作,2015微软创新杯大赛中国区官网落户CSDN高校俱乐部:http://student.csdn.net/mcs/imaginecup2015 在微软官方设置创新杯中国区奖项之外,CSDN高校俱乐部每个竞赛项目特设一等奖.二等奖.三等奖及纪念奖若干名. CSDN高校俱乐部特别奖(获奖者需在高校俱乐部进行过报名备案):详情-> 1. 一等奖(三支团队): 每个竞赛项目一等奖一名,每支团队获得奖金2,000元人民币,团队成员每人尊享2015 CSDN VIP年卡会员:

【结果发布】第六届SeedCoder编程大赛初赛结果发布

微软俱乐部科技文化月seedcoder2014编程大赛已经初审完成. 评审小组选出最棒的作品进入决赛(现场答辩+陈述环节,由评委现场打分).终于排名由"初赛分数+现场答辩分"决定. 决赛答辩时间为:2014年4月20日(本周日)  晚上19:00     有讲座票派发 地点: 34号楼103教室 以下为初赛结果(依据队名排序): 算法组获奖的队伍名单 队伍 学院 年级 奖项 YOLO 计算机科学与project学院 大二 參加答辩 aaaaaa 软件学院 大三 參加答辩 mg 软件学院

华为2018软件精英大赛——初赛

题目连接:http://codecraft.devcloud.huaweicloud.com/home/detail 比赛历程:找了室友和一个电院的朋友组队,一共差不多一个月的时间,平时一般白天做自己的事,晚上花一两个小时写写改改,期间每一个星期找一天晚上一起讨论一下  下周的工作计划. 由于本次比赛主要是机器学习类别,最开始决定用python的时候还挺虚的,毕竟从来没用过,然后花了大概一个早上的时间[绝对没有吹**,没看第三方包,反正比赛也不让用,有面向对象基础学python真的很快]把基本语