`
dowhathowtodo
  • 浏览: 828062 次
文章分类
社区版块
存档分类
最新评论

2007年百度程序设计大赛Astar初赛题目(第二场)

 
阅读更多
1.百度时间
Baidu的服务器上使用的不是北京时间,而是Baidu时间。Baidu时间的时分秒与北京时间相同,但是日期与北京时间不同,是用一个正整数表示从2000年1月1日开始经过了几天。
现在就请大家设计一个程序将北京时间转换为百度时间。在本题中,闰年的年份是400的倍数,或者是4的倍数但不是100的倍数。比如2000和8888均为闰年,但6100不是。
输入格式
输入数据的每一行为一个待转化的北京时间(不含空格和TAB),正确的格式包括两种:
一种为:YYYY-MM-DD,(YYYY表示四位数年份,MM为两位月份,DD为两位日期);
另一种为:MMYY,(YYYY表示四位数年份,MM为两位月份,DD为两位日期);
输出格式
每个数据输出一行。如果可以成功转换,输出一个正整数,否则输出Error。
输入样例 例
2000-01-01
AStar2007
05/26/2007
输出样例 例
0
Error
2702
评分规则
程序将运行在一台Linux机器上(内存使用不作严格限制),在每一测试用例上运行不能超过1秒,否则该用例不得分;
要求程序能按照输入样例的格式读取标准输入数据,按照输出样例的格式将运行结果输出到标准输出上。如果不能正确读入数据和输出数据,该题将不得分;
该题共有5个测试数据集,数据1和数据2中的所有日期均能成功转换。所有数据中,每行不超过20个字符,每组数据最多包含100行;
该题目20分。
2.实习生小胖的百度网页过滤器
百度网页采集器(Baiduspider)每天从互联网收录数亿网页,互联网的网页质量参差不齐。百度的工程师们每天都在改进方法来判断一个网页质量的好坏,使质量差的网页出现在检索结果中较后的位置。现在实习生小胖想到一个很简单的方法来判断一个网页内容的好坏,方法如下:
1. 利用数据挖掘技术在互联网语料库中挖掘出一批有特点的词汇,分为好词和坏词两种,好词标上正的权重,坏词标上负的权重;
2. 通过好词和坏词词典对每个网页计算网页总权重:从第一个字开始匹配,找到一个好词则加上相应的权重,找到一个坏词则减去相应的权重,下一次匹配将从找到的词末尾的下一个位置开始。
3. 坏词采用正向最短匹配:从当前匹配位置开始的若干连续汉字,如果形成多个坏词,则只计算最短的那个坏词的权重,下一次匹配将从这个最短坏词末尾的下一个位置开始。
4. 好词采取正向最长匹配:从当前匹配位置开始的若干连续汉字,如果形成多个“有效”好词,则只计算最长“有效”好词的权重,下一次匹配从这个最长“有效”好词末尾的下一个位置开始。
5. “无效”好词的定义:好词的一部分本身是一个坏词;或者好词的一部分与后续相邻的若干字组成一个坏词。
现在小胖已经做好了第1步的工作,有一个好词和坏词的列表(词典),但是由于没有对中文文本处理的程序经验,他想请未来的百度之星们帮他完成这个程序。
输入格式
输入第一行为一个字符串(网页正文)。从第二行开始为词典,格式为“词 空格 词的权重”。权重为一个带符号32位整数。如果权重为正,则为好词,反之则为坏词;不存在重复的词,不存在权重为0的词。
作为“网页”的字符串中同时包含中文和ASCII字符,每个汉字占2个字节。并非“网页”中的所有字都在词典中。
输出格式
输出仅一行,为网页总权重(答案保证不超过带符号32位整数的范围)。
样例输入 例
小胖之喷火龙骑士!!
小胖 6
喷火 -1
喷火龙 -1
火龙 -1
龙 4
龙骑 3
龙骑士 2
骑士 -2
士 3
样例输出 例
7
样例解释
从“网页”中找到的好词为“小胖”和“龙”,坏词为“喷火”和“骑士”。特别要说明一下“龙”被识别为好词的原因——“喷火”和“喷火龙”均为坏词,按正向最短匹配得到“喷火”,接着往下匹配到好词“龙”、“龙骑”和“龙骑士”,但是由于“骑士”是坏词,所以“龙骑”、“龙骑士”无效而“龙”是最长的有效好词。注意题目描述中的匹配规则,好词的“有效”和“无效”只考虑该好词的一部分与后续字是否能够组成坏词,而不考虑和前面的字是否能够组成坏词——样例中的“龙”虽然可以与前面的字组成坏词“喷火龙”和“火龙”,但由于这两个词都是未能匹配成功的坏词,因此对好词“龙”的词性没有影响,可以累积“龙”的权重。
注意事项
输入数据的中文采用GBK编码。
GBK:是又一个汉字编码标准,全称《汉字内码扩展规范》。采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,排除xx7F。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。
评分规则
程序将运行在一台Linux机器上(内存使用不作严格限制),在每一测试用例上运行不能超过1秒,否则该用例不得分;
要求程序能按照输入样例的格式读取标准输入数据,按照输出样例的格式将运行结果输出到标准输出上。如果不能正确读入数据和输出数据,该题将不得分;
该题共有10个测试数据集,前7组数据的大小不超过1K字节,数据8和数据9不超过600K字节,数据10的网页正文不超过1M字节。所有数据的词典不超过50,000项,且词典中的词保证由1到5个汉字组成。词典不包含重复的单词;
该题目20分。

分享到:
评论

相关推荐

    Astar2007百度之星程序设计大赛网络资格赛(初赛) 题

    根据给定的信息,我们可以分析出这是关于Astar2007百度之星程序设计大赛网络资格赛(初赛)的相关题目及解析。以下是对各题目所涉及的知识点进行详细阐述: ### 第一题:时间线问题 #### 题目描述: 本题要求处理...

    Astar2006百度之星程序设计大赛题目

    这是一份关于2006年百度之星程序设计大赛的题目集,它包含了当年比赛的所有编程挑战。百度之星程序设计大赛是针对广大计算机科学和技术爱好者举办的一项年度竞赛,旨在考察参赛者的编程能力、算法理解以及问题解决...

    Astar2006百度之星程序设计大赛题目参考源程序

    【描述】的简洁性表明,这是一个关于2006年百度之星(Astar2006)程序设计大赛的资料集合,主要包含题目文档和参考源代码。这提示我们,该资源可能是为参赛者或对编程竞赛感兴趣的个人提供的一种学习材料,帮助他们...

    Astar2009百度之星程序设计大赛(初赛)试题1.doc

    Astar2009百度之星程序设计大赛(初赛)试题1

    Astar2009百度之星程序设计大赛(初赛)试题2.doc

    Astar2009百度之星程序设计大赛(初赛)试题2正是这样一个旨在挑战与提升参赛者编程水平的活动。本次比赛,参赛者面临的问题不仅是编写出能够解决问题的程序代码,还需要在有限的时间内、严格的要求下,使程序运行...

    百度之星程序设计大赛试题

    在2006年的百度之星程序设计大赛中,第一轮共有6道题目。这些题目通常涵盖了基础算法、数据结构、逻辑推理等多个方面,旨在考察参赛者的综合编程能力。以下是可能涉及的一些知识点: 1. **基础算法**:如排序(快速...

    百度AStar2006参考源码

    百度AStar2006参考源码,是百度在2006年举办的“百度之星”编程大赛中的一个重要组成部分。这场赛事旨在激发程序员们的创新精神和算法能力,尤其是对人工智能领域的理解和应用。其中,AStar(A*)算法作为经典的路径...

    Astar1_AStar_

    2. **启发式函数(Heuristic Function)**:AStar算法的核心在于启发式函数,通常用曼哈顿距离或汉明距离来评估目标状态与当前状态之间的差异。例如,曼哈顿距离是每个数字到目标位置的水平和垂直距离之和。 3. **F...

    基于二叉堆的AStar算法演示程序

    **二叉堆与AStar算法详解** 在计算机科学中,二叉堆是一种特殊的树形数据结构,它同时满足堆的两个性质:一个完全二叉树(每个层级除了最后一层外,都完全填充,并且所有节点尽可能地集中在左边)并且是有序的。...

    Astar.zip_Astar最短路径_Astar算法_astar matlab_最短路径_最短路径 matlab

    2. "Astar.dll":这是一个动态链接库文件,可能包含了C++编译后的A*算法,可以在MATLAB中调用,提供更高效的计算能力。 3. "stlastar.h":这可能是一个头文件,包含了A*算法的函数声明或者相关数据结构定义。 4. ...

    baidu-web-filter.rar_网页 过滤

    【描述】:“2007年百度程序设计大赛Astar初赛题,实习生小胖的百度网页过滤器,老师给我选的软件工程课程设计,其实只是一个简单的程序。基础比较好的朋友可以参考,基础一般的可以学学。” 这段描述提供了更多...

    Astar算法as实现

    2. 启发式函数:设计一个估算函数heuristic,用于计算从当前节点到目标节点的预估成本。常见的启发式函数有曼哈顿距离和欧几里得距离。 3. 优先级队列:使用PriorityQueue类来管理开放列表,根据F值排序。 4. 初始...

    Astar算法C#实现

    Astar算法,也称为A*搜索算法,是路径搜索领域的一种广泛应用的算法,它结合了最佳优先搜索(如Dijkstra算法)和启发式搜索(如Greedy Best-First Search)的优点。在C#中实现Astar算法,可以用于解决游戏中的寻路...

    AStar算法源代码及演示JAR_java_astar代码完成_scalee1h_astar算法java_

    AStar(A*)算法是一种在图形搜索中用于找到从起始节点到目标节点最短路径的算法。它结合了Dijkstra算法的最优性保证和Best-First Search(最佳优先搜索)的效率,通过引入启发式函数来指导搜索方向,从而在实际应用...

    Astar_八数码C语言_Astar算法_AStar_

    C语言实现Astar算法时,需要注意数据结构的设计,如使用数组或链表来表示节点和它们之间的关系,以及优化搜索过程中的内存管理和效率。`Astar.txt`文件可能包含了Astar算法在C语言中的具体代码实现,包括节点定义、...

    AStar C#寻路算法

    AStar寻路算法是一种在图形或网格中寻找最短路径的经典算法,被广泛应用于游戏开发、地图导航等领域。C#是一种常用的编程语言,尤其在Windows应用程序和Unity游戏引擎中非常流行。下面我们将深入探讨AStar算法的核心...

    Astar算法机器人路径规划

    3. **路径规划**:在程序中实现Astar算法,根据地图和传感器数据计算路径。 4. **控制机器人**:将规划出的路径转换为控制命令,通过Player发送给机器人。 5. **反馈与调整**:实时监控机器人的位置和状态,根据...

    航迹规划中的AStar算法

    - `main.m` 很可能是整个程序的主入口,调用并执行AStar算法。 - `single_m.m` 可能用于处理单个节点的操作。 - `followlead.m` 可能涉及到跟随或领导行为,如多机器人系统中的协作路径规划。 - `selnodes2.m` 和 `...

    AStar算法求解迷宫问题

    AStar(A*)算法是一种在图形搜索中用于找到两点之间最短路径的启发式搜索算法。它结合了Dijkstra算法的全局最优性和Greedy最佳优先搜索算法的效率,通过引入一个评估函数来预估从起点到目标点的最优路径成本,从而...

Global site tag (gtag.js) - Google Analytics