摘要:
++增量互有前增量和后增量区别,重载操作符时,虽然函数名相同,但是应有相应的区别.对于一个整型变量前增量操作符的结果与返回值变量是一致的,而后增量操作符返回的是一个临时变量。于是在增量操作符重载时也需要有前增量与后增量的区分。 前增量操作对象与返回对象是同一个变量,在反应对象的前增量操作时,要... 阅读全文
摘要:
内联函数声明必须在调用前,这是由于内联函数的代码在程序运行时是直接镶嵌在调用处执行的,这用节省啦函数来回跳动的时间。应该注意的是,内联函数函数体应该尽量小,一般没有循环语句,否则编译器无视内联,代码在5行内。适合于频繁被调用的小程序。#includeusing namespace std;int s... 阅读全文
摘要:
常提到的排序算法有冒泡排序,选择排序(包括堆排序),插入排序(包括shell排序),快速排序,归并排序,桶排序,基数排序,表排序。每种排序算法都有各自的优缺点,没有绝对 的一种排序是最好的,排序算法效率与实际问题有关。—冒泡排序 相对来说,冒泡排序是一种思路比较简单的排序,对于N个数进行排序时... 阅读全文
摘要:
无权边单源最短路径相对来说比较简单,边数就是路径长度。从出发点开始,先收集路径为0顶点(它本身),然后收录他的邻顶点(路径为1),再依次收录长度为2,3,4....。整个过程其实就是一个广度优先搜索(BFS),但是需要做些改变,需要一个数组d[w]来记录顶点w到源点s的路径长度,开始时要将d[w... 阅读全文
摘要:
一道DP题,按照一个法则来生成一系列数,初始数是1.任意的第i个数可以看成是在i以前的数*2,*3,*5,或*7得到的,因为是按照从小到大的顺序生成的,于是DP[i]=min{2*DP[p1],3*DP[p2],5*DP[p3],7*DP[p4]};p1,p2,p3,p4分别表示用*2,*3,*4... 阅读全文
摘要:
给出一串数,如何来构造一颗完全二叉搜索树。我们了解完全二叉搜索树的定义,就不多说。接下来我们需要用一种数据结构来储存,一般使用线性表或者链表来储存一颗树,对于完全二叉树而言,用数组储存的优势高于用链表储存,对于线性表储存完全二叉数,不用担心空间的浪费,也容易操作。于是我们就选择线性表来储存。对... 阅读全文
摘要:
提交啦n次一直WA,这个bug找啦几个小时,最终才发现数组开小啦,真是遗憾。这是一个典型的DP问题,题目要求从n个中选出k对使得最终疲劳度最小。首先对物品质量a[n]进行一次排序,用dp[i][j]表示从前i个物品中选取j对物品的最小疲劳度,现在我们来探讨状态转移方程,对于第i个物品,我们有选和... 阅读全文
摘要:
题目在:http://acm.hdu.edu.cn/diy/contest_showproblem.php?pid=1010&cid=11785 仔细分析题目,豆子都在m*n的矩阵中,假设我要选取m[i][j]处的豆子,那么一定不会选取第i-1行和i+1行的豆子,为啦使得最终获得分数最高,既然选... 阅读全文
摘要:
一开始把题目意思理解错啦,做那好久没做出来。本题是一个dp问题;题目说列可以无限次对换,设矩阵为M[i][j],要找到面积大的矩形其实就是处理连续1的个数问题,用d[i][j](i表示行,j表示列)表示第i行从元素M[i][j]按列向下连1的个数,然后数组d[i]表示啦第i行向下连续1的个数的集... 阅读全文
摘要:
这是一个矩阵的动态规划,与数塔问题类似。位置k和时间t是两个变量,假设在第t秒人·的位置在k处,用m[k][t]表示第t秒在位置k处人获得的最大饼的数量,那莫考虑考虑t-1秒时候人的位置k可以在k-1,k,k+1三个位置(当k=0或者k=10时候特殊处理)于是得到状态方程:m[i][j]=ma... 阅读全文