- 博客(23)
- 资源 (54)
- 收藏
- 关注
原创 分巧克力 - 湖北民族学院提供--【英雄会之高校俱乐部】
经常去英雄会逛逛倒是不假,但是很少去高校俱乐部,因为这两边的题目有部分相同,hero那边难度可能稍微高一点,不过今天倒是逛了一下,被一个一星的来了个当头一棒...题目很简单:儿童节快到了,班长想要给班上的每个同学给一个巧克力,巧克力的形状是一个宽为2,长为n的长方形,由于巧克力太贵,班长就想把这个大块的巧克力分成许多 1*2(宽*长)的小块巧克力,这样每个人都能得到一份1*2的巧克力,现在给定巧克力的长为正整数n(1<=n<=91),请你判断对于这 个2*n的巧克力有多少种不同的分法? 相信很多人第一
2014-01-31 21:18:36 1829
原创 版权问题伴我行
在当今社会,版权问题确实是一个比较热的话题,各种书籍作者什么的对于自己的版权也是重视之至;本来这个问题对我来说是不相干的,至少现在来说是比较遥远的...可是最近在csdn上发了一些学习记录性的博客,偶尔去看看搜索效率怎么样,昨天搜索了“有n个罐子,有k个硬币,每个罐子可以容纳任意数量的硬币。罐子是不透明的,起初你可”这后面的文字被百度自动截取了(限于38个文字),可是搜索结果却让吓我一跳...
2014-01-31 10:31:01 1852
原创 报数游戏(2)--【英雄会】
新年快乐!送上蛇年的最后一篇博客,迎接马年...N个人(编号1-N),站成一排,进行报数游戏。报数过程可能进行很多轮,有如下规则: (1) 如果剩余人数不超过3个人,则游戏结束。 (2) 大家报数,然后留下报奇数的人从第一个人继续游戏,或者留下报偶数的人继续游戏。 重复如此(1)(2)两步骤,到游戏结束。 问:最终剩下的三人组有多少种情况?(注意是三人组,例如如果最后剩下2个或者1个人,不计入结果中)。 输入n, (0<n<=10000000) ,输出最终结果。
2014-01-30 16:35:32 2264 6
原创 罐子与硬币--【英雄会】
好久没来英雄会了,所以今天来看看几题,看到“罐子与硬币”这一题不错,这种题目比较适合我的味道,不过,可惜啊...性子太急,分没到手...题目如下:有n个罐子,有k个硬币,每个罐子可以容纳任意数量的硬币。罐子是不透明的,起初你可以随机把这k个硬币任意放在罐子里。然后罐子被打乱顺序,你从外表无法区别罐子。最后罐子被编上号1-n。你有p次机会,每次你可以选择某个罐子,如果该罐子里有硬币,则你可以得到1个(你不可以知道该罐子里有多少硬币),如果该罐子是空的,你得不到任何硬币。你最终要得到至少c枚硬币,我们的问
2014-01-28 19:53:26 2104 4
原创 报数游戏(3)--【英雄会】
回来也十天了,中间各种私事,包括替看店等等...不过现在终于有着较大段时间逛逛英雄会了,最近题目出了数道,当然难度也是比较适合的,二星、三星的我还勉强可以一做...废话不多言,说题目吧:一种报数游戏是从1开始连续报数,如果报到7的倍数(7,14,21,28……)或者包含数字7的数(7,17,27,37……)就用拍手代替这个数而不能报出。假设你连续听到m声拍手,问造成你听到m声拍手的第一下拍手所代表的数是几?例如,你听到了两次连续的拍手,最小的可能这两次拍手是27和28,因此输出27。输入m, 输出这m
2014-01-28 12:01:14 3894
转载 当你学不进去的时候,试试“普瑞馬”法则
【普瑞马法则】以心理学操作性反射的原则为基础,对于人类的行为方式进行观察后,心理学家提出这样一种改进方式,以纠正惰性生活方式,并由这种惰性生活方式的结束而带来整个人生的良性改变。这也叫普瑞马法则。你如果有兴趣坚持尝试一周以下方式,你会发现你整个人会很不同了,如果能继续坚持,那惰性生活方式就会永远不敢再接近你,而你将在人生获得你愿意的成就。1.大脑喜欢色彩。平时使用高质量的有色笔或使用有
2014-01-28 11:24:50 1063
原创 倒排索引处理文档--【随笔】
就是给给一个文档集,利用倒排挡索引技术,实现1.输入布尔表达式,如:输入hello&world,输出同时存在这两个单词的文档名2.输入一个词组,输出存在这个词组的文档名倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。有两种不同的反向索引形式:1、一条记录的水平反向索引(或者反向档案索引)包含每个引用单词的文档的列表。2、一个单
2014-01-16 09:00:44 1956 1
原创 计数排序(线性时间排序)--【算法导论】
之前的排序都是通过比较得到的,即比较排序:在排序的最终结果中,各元素的次序依赖与它们之间的比较。而时间复杂度最好的也是O(nlgn),接下来说一个未经比较的排序,而复杂度则是线性的。计数排序假设n个输入元素的每一个都是在0-k区间内的一个整数,其中k为某个整数。当k = O(n)时,排序的运行时间为O(n)。计数排序的基本思想是:对每一个输入元素x,确定小于x的元素个数。利用这一信息,就可以直接把x放到它在输出数组中的位置上了。例如,如果有17个元素小于x,则将x放在第18个位置即可。但是当存在几个
2014-01-09 20:56:59 1155
原创 快速排序--【算法导论】
对于包含n个数的输入数组来说,快速排序是一种最坏情况时间复杂度为O(n²)的排序算法。虽然最坏情况时间的复杂度很差,但是快速排序通常是实际排序应用中最好的选择,因为它的平均性能非常好:它的期望时间复杂度是O(nlgn),而且O(nlgn)中隐含的常数因子非常小,另外,它还能够进行原址排序,甚至在虚存环境中也能很好的工作。快速排序使用了分治的思想:分解:将数组A[low..high]划分为两个子数组A[low..mid - 1]以及A[mid + 1..high],使得A[low..mid - 1]子
2014-01-09 15:49:23 1137
原创 最大优先队列--【算法导论】
堆排序是一个优秀的算法,但是在实际应用中,如快速排序的性能会优于它。但是堆排序有着另外的作用,如优先队列;与堆排序一样,优先队列也有两种形式:最大优先队列,最小优先队列(暂且讨论最大优先队列);优先队列:是一种用来维护由一组元素构成的集合S的数据结果,其中的每个元素都有一个相关的值,称为关键字。最大优先队列支持:
2014-01-09 14:07:40 2790
原创 堆排序(最小堆)--【算法导论】
堆排序的思想在堆排序(最大堆)已做说明,故不再赘述;总之,思想就是首先进行建堆,由于这是最小堆,故而必须保证父节点都小于孩子节点,若不满足条件,则进行调节;最后进行堆排序,不断将最小的提取出来,并对剩下的进行调节,使之满足最小堆;故而将最大堆中的判断父节点与孩子大小部分改变即可: if (left <= length && A[largest] > A[left]) //左孩子比父节点小 { largest = left; } if (righ
2014-01-08 21:39:06 8446
原创 堆排序(最大堆进阶)--【算法导论】
上篇【堆排序(最大堆)】说过,代码是按照书中的伪码写出,书中的根结点是1,但一般我们数组的下标由0开始,故而现在改为由0开始;上篇已说过实现的过程,故而不在赘述,可见上篇;将其中的一些条件改变即可:首先是建堆的值,由0开始的根结点,对于A[n],它的父节点是(n - 1) / 2,并且到0为止,都是父节点;故而建堆:
2014-01-08 20:01:54 1204
原创 堆排序(最大堆[1])--【算法导论】
前一章的“概率分析与随机算法”实在伤脑子,好在看过去了,现在正在看的是排序部分;堆排序,这次说的是最大推排序(和最小堆原理也是相同的),和原文中的思路也是一样的,后序有补充也会贴出来的;最大堆...即是父节点的值大于孩子的值,若不满足条件,则经过调节使其满足条件:
2014-01-08 19:23:04 2799
原创 子序列的个数(解)--【英雄会】
本题同样来自caopengcs,只要你有兴趣,每个人都可以出题(出题入口在主页右侧边栏“贡献题目”->“我要发布”内),以下是题目详情:子序列的定义:对于一个序列a=a[1],a[2],......a[n],则非空序列a'=a[p1],a[p2]......a[pm]为a的一个子序列,其中1<=p1<p2<.....<pm<=n。 例如:4,14,2,3和14,1,2,3都为4,13,14,1,2,3的子序列。 对于给出序列a,有些子序列可能是相同的,这里只算做1个,要求输出a的不同子序列的数量。
2014-01-07 23:39:37 1083
原创 微软必应-英雄会第三届在线编程大赛:几个Bing?【英雄会】
本届大赛由微软必应词典冠名,必应词典(http://cn.bing.com/dict/?form=BDVSP4&mkt=zh-CN&setlang=ZH)是微软推出的新一代英语学习引擎,里面收录了很多我们常见的单词。但现实生活中,我们也经常能看到一些毫无规则的字符串,导致词典无法正常收录,不过,我们是否可以从无规则的字符串中提取出正规的单词呢? 例如有一个字符串"iinbinbing",截取不同位置的字符‘b’、‘i’、‘n’、‘g’组合成单词"bing"。若从1开始计数的话,则‘b’
2014-01-07 22:05:35 1048
原创 最大子数组问题(分治法)--【算法导论】
《算法导论》中引入这个问题是通过股票的购买与出售,经过问题转换,将前一天的当天的股票差价重新表示出来,即转为了一个最大子数组的问题,具体内容我不多说,转的内容是:13, -3, -25, 20, -3, -16, -23, 18, 20, -7, 12, -5, -22, 15, -4, 7找到这连续的16个数里面的连续和最大的子数组;假定我们要寻找子数组A[low..high]的最大子数组,使用分治法意味着我们要将子数组划分为两个规模尽可能相等的子数组。也就是说,找到子数组的中央位置,比如mi
2014-01-07 11:44:05 5265 16
原创 最大子数组问题(动态规划)--【算法导论】
《算法导论》中引入这个问题是通过股票的购买与出售,将前一天的当天的股票差价重新表示出来,即转为了一个最大子数组的问题,具体内容我不多说,转的内容是:13, -3, -25, 20, -3, -16, -23, 18, 20, -7, 12, -5, -22, 15, -4, 7找到这连续的16个数里面的连续和最大的子数组;书中练习部分说用设计非递归的,线性时间的算法,我就YY为动态规划处理了;从数组的左边界开始,从左至右处理,记录到目前为止已经处理过的最大子数组。若已知A[1..j]的最大子
2014-01-07 10:32:01 9180
原创 二十进制数的加法--【英雄会】
今天晚上看到群里面交流的信息,发现又出新题了,看了一下,难度还可以,不过一会儿就由三星难度降为二星了...有兴趣的朋友们可以去英雄会......如题:在二十进制中,我们除了使用数字0-9以外,还使用字母a-j(表示10-19),给定两个二十进制整数,求它们的和。 输入是两个二十进制整数,且都大于0,不超过100位;输出是它们的和(二十进制),且不包含首0。我们用字符串来表示二十进制整数。 总的来说,这一题难度还可以,只要注意点没忘记,大家应该都是没问题的;首先是简单的两个数相加“122”
2014-01-06 22:26:26 1179
原创 二分查找另类--【编程珠玑第四章】
这是《编程珠玑》第四章的问题:如果最初的二分查找对你来说太简单了(大家肯定都是这么感觉的...)那么请你试一下其变型:在p中返回t在数组x中第一次出现时的位置(即如果一个数组多次出现的话,原先的算法所返回的是众多位置的中的任意一个)。你的代码应该对数组元素进行对数次比较,可能要进行log2N此这样的比较才能完成此二分查找。这题的关键是找到最先开始出现的位置,如对数组:{0, 5, 5, 5, 5, 14, 16, 16, 50, 65, 70};
2014-01-04 13:39:46 1812 5
原创 二分查找非递归实现--【编程珠玑】
首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
2014-01-04 13:08:10 1170
原创 字符串消除--【英雄会】
给定一个字符串,仅由a,b,c 3种小写字母组成。当出现连续两个不同的字母时,你可以用另外一个字母替换它,如 有ab或ba连续出现,你把它们替换为字母c; 有ac或ca连续出现时,你可以把它们替换为字母b; 有bc或cb 连续出现时,你可以把它们替换为字母a。 你可以不断反复按照这个规则进行替换,你的目标是使得最终结果所得到的字符串尽可能短,求最终结果的最短长度。 输入:字符串。长度不超过200,仅由abc三种小写字母组成。输出: 按照上述规则不断消除替换,所得到的字符串最短的长度。 例如:
2014-01-03 17:07:11 847
原创 二分查找递归实现--【编程珠玑】
作者说 有百分之九十的程序员在程序中发现了bug(同时怀疑那些没有发现bug的正确性)所以尽管二分查找是我们感觉上比较简单的一个程序,但是我们依然不可小视;首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
2014-01-01 23:35:09 1519
原创 【VC++】010菜单命令的路由
祝各位元旦快乐...元旦小放了点假,放松一下...继续前行接着009菜单命令响应函数继续往后看,今天了解菜单命令的路由;1.程序类对菜单命令的响应顺序在前面的一篇中,菜单项命令是由CMainFrame类捕获的,这次我们通过建立类向导,选择别的类来实现test函数;使用MessageBox或AfxMessageBox来提醒:int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, UINT nType = MB_OK );
2014-01-01 21:38:37 1205 4
覆盖数字--英雄会pongo
2013-12-29
VC++窗口重绘
2013-12-27
插入符(文本插入符, 图形插入符)
2013-12-27
杨辉三角的变形
2013-12-23
画刷绘图MFC
2013-12-22
使用画刷绘图
2013-12-22
绘制直线MFC
2013-12-22
建立信号基站
2013-12-21
理想随机数发生器
2013-12-21
最小操作次数的简易版--英雄会
2013-12-21
整数取反,人人code
2013-12-20
[纠错]直方图中矩形最大面积
2013-12-20
寻找直方图中面积最大的矩形
2013-12-20
最长有效括号的长度
2013-12-20
c/c++二分查找修改版
2013-12-02
二分查找修改版
2013-12-02
c_library库函数
2013-11-28
如何学好编程
2013-11-26
亲密数Close
2013-11-12
钢条切割-【算法导论-动态规划】
2014-04-23
插入排序-《编程珠玑》
2014-04-01
变位词《编程珠玑》
2014-03-20
位图排序《编程珠玑》
2014-03-18
二叉搜索树三种访问方式
2014-02-28
倒排索引处理文档
2014-01-16
堆排序(最大堆修改版)【算法导论】
2014-01-08
堆排序最大堆【算法导论】
2014-01-08
二十进制数的加法【庞果网英雄会】
2014-01-06
菜单命令的路由【VC++】
2014-01-01
给定某年某月,输出该月日历
2013-12-31
给定一个日子,返回是一周的第几天
2013-12-31
两个日期相差的天数【编程珠玑】
2013-12-30
均分01【庞果网 英雄会】
2013-12-30
数组排序【庞果网、英雄会】
2013-12-29
VC++菜单命令响应函数
2013-12-29
VC++设置字体字幕变色
2013-12-29
VC++字符输入
2013-12-28
MFC路径【VC++】
2013-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人