- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
“神马都浮云,编程最给力” 第二届“华为杯”软件设计大赛题目——命题
“神马都浮云,编程最给力”
第二届“华为杯”软件设计大赛题目——命题组
题目1、动态多维度装箱算法
题目描述:
装箱算法是一个著名的NP难解问题,其在工业生产及日常生活中有着广泛的应用场景。
设计要求:
一、说明
1)箱子和物品可以用一个多维向量来表示,简称维度(维度3);
2)箱子的各个维度的大小初始化之后固定不变;
3)物品的各个维度的大小会动态变化;
4)判断一个箱子是否能够容下物品的办法是:箱子中所有物品任一维度的和小于箱子相应维度的大小;
5)如果箱子容不下箱子里的物品,则需要把某些物品搬到其他容得下这些物品的箱子中;
6)物品变大是指物品的某个或多个维度值变大了,变小则相反;
二、问题描述
假设共有X(X60)个箱子和Y(Y3000)个物品,初始状态时Y个物品都在X个箱子中。每隔3秒钟,所有物品的大小都会变化,算法模块检测是否存在某个箱子装不下物品的情况,然后决定如何通过搬物品解决。
三、算法目标
设计一个动态多维度装箱算法:
1)当物品变得比较大时,如果出现箱子容不下物品的情况,需要把这箱子中的物品搬到其他箱子中(可能需要多次搬物品);
2)当物品变得比较小时,尽量把物品放到尽量少的箱子中;
规格说明:
1)决策时间少于0.2秒
作品格式:
1)算法设计文档
2)算法模块源码
3)检验算法性能的测试程序源码和可执行文件
评选标准:
1)装箱的准确度
2)装箱的决策时间
3)箱子和物品数量的规模
题目2、URL匹配算法研究
题目描述:
URL匹配是指URL库中高效匹配出与当前给定URL最符合的库中的URL条目。
设计要求:
构建URL库规则,需要包含如下的一些URL样式:
不含通配符匹配
1. 在规则中未出现通配符的场景,则采用最大匹配原则。
例:
配置规则:
能匹配上
http://www. /huawei能匹配上
/pop/能匹配上
/test/Huawei.jsp能匹配上
/test/a.jsp?v=huawei不能匹配上
2. 文件结尾的,认为此请求为一个文件的请求,而不认为是一个路径。
例:
配置规则/DP/SD
GET /DP/SD能匹配上
GET /DP/SD/a.html匹配不上
GET /DP/SD.jsp 匹配不上
3. 路径带“/”结尾,路径后带”/”表示此条配置为一个路径,路径后面可以带有更多的路径及文件都能够匹配上。
例:
配置规则/Temporary/
http:// /Temporary/aa/aaaa/aa/ 匹配上
http:// /Temporary/aa/aaaa/aa/c匹配上
域名中带有通配符
1. 支持域名前后带*的情况:http://*. , http://www.huawei.*, http://*.huawei.*,但是*可以匹配N段域
例:
配置:http://*.
能匹配上
能匹配上
配置规则: http://www.huawei.*
能匹配上
能匹配上
配置规则: http://*.huawei.*
能匹配上
能匹配上
能匹配上
2. 域名或ip地址后面加”/”和不加”/”效果一样
例:
配置规则和/效果一样
3. ip地址的通配,支持http://*.164.102.107和http://10.164.102.*即首尾通配的情况
例:
配置规则http://*.164.102.107
07能匹配上
配置规则http://10.164.102.*
07能匹配上
域名中的通配符的约束:
? 只能替换以“.”分隔的字符串,不能替换符号“.”以及包含该符号的字符串
? 只能替换域名中以“.”分隔的第一个和最后一个字段
? 通配符不能替换URL规则定义中的端口号,不能替换符号
? 不支持http://*.*.*等多个*的匹配
? 不支持http://*.*,http://*.*.*,http://*.huawei.*.*
? 不支持http://www.*.*
端口号的通配
1. 支持端口*的通配
例:
配置规则:*/
:80/能匹配上
:5050/能匹配上
备注:如果输入的URL中不带端口号,则直接按照默认的80端口处理。
路径的通配
1. 支持匹配当前路径的所有文件。
例:
配置规则/*
GET /12345a/不能匹配上
GET /12345a/a.xml不能匹配上
GET /a.xml匹配上
2. 支持匹配当前所有路径以及路径下的所有文件
例:
配置规则:5000/*/
GET :5000/a.xml不能匹配上
GET :5000/aaa/匹配上
GET :5000/aaa/a.xml匹配上
GET :5000/aaa/bbb/匹配上
路径中通配符的约束:
? *只能代替两个连续的“/”之间的一段字符串,通配符不能替换路径中的“/”符号。也不能代
文档评论(0)