杰拉斯的博客

[ACM实验二]C++STL泛型编程(2)

杰拉斯 杰拉斯 | 时间:2012-03-31, Sat | 7,362 views
编程算法 

实验项目:C++STL泛型编程(2)
实验目的:掌握C++STL string向量容器等的应用。
实验要求:使用VC++6.0实现实验要求。
实验内容:

1.输入一串小写字母字符,输出该字符串中每个字母的个数,例如输入:aadsef,输出:
a 2
d 1
e 1
f 1
s 1

2. 古代一位国王和他的张、王、李、赵、钱五位将军一同出外打猎,各人的箭上都刻有自己的姓氏。打猎中,一只鹿中箭倒下,但不知是何人所射。
张说:"或者是我射中的,或者是李将军射中的。"
王说:"不是钱将军射中的。"
李说:"如果不是赵将军射中的,那么一定是王将军射中的。"
赵说:"既不是我射中的,也不是王将军射中的。"
钱说:"既不是李将军射中的,也不是张将军射中的。"
国王让人把射中鹿的箭拿来,看了看,说:"你们五位将军的猜测,只有两个人的话是真的."请判断是谁射中鹿。

3. 输入一个自然数N(2≤N≤9),要求输出如下的魔方阵,即边长为N行N列,元素取值为1至N*N,1在左上角,呈顺时针方向依次放置各元素。如输入4,输出:
1 2 3 412  13  14   511  16  15   610   9   8   7

附加题:
给定一个N×M的整数矩阵,找出其中具有最大和的子矩阵。一个矩阵的和就是矩阵中所有元素的和,子矩阵是指位于整个矩阵中任何一个1×1或更大的连续的子矩阵。

(阅读全文…)

[ACM实验一]C++STL泛型编程(1)

杰拉斯 杰拉斯 | 时间:2012-03-30, Fri | 8,125 views
编程算法 

实验项目:C++STL泛型编程(1)
实验目的:掌握C++STL vector向量容器、stack堆容器和queue队列容器的应用。
实验要求:使用VC++6.0实现实验要求。
实验内容:

1.利用vector向量容器,实现1—n个数围成一圈,隔3输出,输出最后的顺序号。
2.利用stack堆栈容器,实现输入一个算术表达式中包含圆括弧、方括弧和花括弧三种类型的括弧,输出是否正确配对。例如:
输入:{4\[6*(8+9)]}+6}
输出:不匹配
3.利用queue队列容器实现杨辉三角,根据输入的n,输出对应的杨辉三角(猛击进入相应OJ题目)。
4.附加题:
一矩形阵列由0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩阵整列的细胞个数

(阅读全文…)

关于软件版本号

杰拉斯 杰拉斯 | 时间:2012-03-29, Thu | 6,469 views
编程算法 

版本号(version number)是版本的标识号。每一个操作系统(或广义的讲,每一个软件)都有一个版本号。版本号能使用户了解所使用的操作系统是否为最新的版本以及它所提供的功能与设施。

当前软件的版本号命名方式众多,之前windows版本有95、98、2000、2003,后有XP、vista,随后沿用开发代号: Windows 7。windows的版本命名一度影响了国内众多软件,像QQ、金山、瑞星等等。

版本命名风格主要有GNU 风格和windows风格,每一个版本号可以分为主版本号与次版本号两部分。例如:DOS4.0,主版本号是4,次版本号是0。

一、 GNU 风格的版本号命名格式
主版本号 . 子版本号 [. 修正版本号 [. 编译版本号 ]]
英文对照 : Major_Version_Number.Minor_Version_Number[.Revision_Number[.Build_Number]]
示例 : 1.2.1, 2.0, 5.0.0 build-13124

二、 Windows 风格的版本号命名格式
主版本号 . 子版本号 [ 修正版本号 [. 编译版本号 ]]
英文对照 : Major_Version_Number.Minor_Version_Number[Revision_Number[.Build_Number]]
示例: 1.21, 2.0

应根据下面的约定使用这些部分:
Major :具有相同名称但不同主版本号的程序集不可互换。例如,这适用于对产品的大量重写,这些重写使得无法实现向后兼容性
Minor :如果两个程序集的名称和主版本号相同,而次版本号不同,这指示显著增强,但照顾到了向后兼容性。例如,这适用于产品的修正版或完全向后兼容的新版本。
Build :内部版本号的不同表示对相同源所作的重新编译。这适合于更改处理器、平台或编译器的情况。
Revision :名称、主版本号和次版本号都相同但修订号不同的程序集应是完全可互换的。这适用于修复以前发布的程序集中的安全漏洞。

下面再例举一些常见的版本命名:
Alpha -- 内部测试版
Beta -- 外部测试版
CHT -- 繁体中文版
CN/SPC -- 简体中文版
EN -- 英文版
Demo -- 演示版
Dev -- 开发专用版,程序员版本。
Free -- 免费版
Professional -- 专业版
Enterprise--企业版
Ultimate -- 旗舰版,最终版本
Upgrade -- 升级版
OEM版 --OEM 版通常是捆绑在硬件中而不单独销售的版本。将自己的产品交给别的公司去卖,保留自己的著作权,双方互惠互利,一举两得。

[ACM_HDU_2050]折线分割平面

杰拉斯 杰拉斯 | 时间:2012-03-28, Wed | 9,285 views
编程算法 

折线分割平面

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 8663 Accepted Submission(s): 6084

Description

我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。

折线分割平面

Input

输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0<n<=10000),表示折线的数量。

Output

对于每个测试实例,请输出平面的最大分割数,每个实例的输出占一行。

(阅读全文…)

[ACM_ZJUT_2012]勘探油田

杰拉斯 杰拉斯 | 时间:2012-03-28, Wed | 7,509 views
编程算法 

勘探油田

Time Limit:1000MS Memory Limit:32768K

Description

某石油勘探公司正在按计划勘探地下油田资源。他们工作在一片长方形的地域中,首先将该地域划分为许多小正方形区域,然后使用探测设备分别探测每一块小正方形区域是否有油。若在一块小正方形区域中探测到有油,则标记为’@’,否则标记为’*’。如果两个相邻区域都为1,那么它们同属于一个石油带,一个石油带可能包含很多小正方形区域,而你的任务是要确定在一片长方形地域中有多少个石油带。 所谓相邻,是指两个小正方形区域上下、左右、左上右下或左下右上同为’@’。

Input

输入数据将包含一些长方形地域数据,每个地域数据的第一行有两个正整数m和n,表示该地域为m*n个小正方形所组成,如果m为0,表示所有输入到此结束。否则,后面m(1≤m≤100)行数据,每行有n(1≤n≤100)个字符,每个字符为’@’或’*’,表示有油或无油。每个长方形地域中,’@’的个数不会超过100。

Output

每个长方形地域,输出油带的个数,每个油带值占独立的一行。油带值不会超过100。

(阅读全文…)