自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 O(N^3)找最大子矩阵Submatrix

其实这个方法是从找最大子序列演化过来的找最大子序列的话,最直接的方法是确定左右边界,然后把这之间的加起来,与当前最大值比较,这样做法复杂度为O(N^3)稍微优化一下的话,是确定一边,然后一个一个加上去,每次与当前最大值比较,这样做法复杂度为O(N^2)再优化一下,就是从第一个开始加,每加一次之后与当前最大值比较,一旦和小于0,就把和清零,因为说明前面的那段对最大没有贡献,复杂度为O(N

2015-09-26 22:44:44 2375

转载 Matlab将散点绘制为平滑曲线的两种方法

自然状态下,用plot画的是折线,而不是平滑曲线。有两种方法可以画平滑曲线,第一种是拟合的方法,第二种是用spcrv,其实原理应该都一样就是插值。下面是源程序,大家可以根据需要自行选择,更改拟合的参数。clc,clear;a = 1:1:6;  %横坐标b = [8.0 9.0 10.0 15.0 35.0 40.0]; %纵坐标plot(a, b, 'b');   %自然状态

2015-09-26 22:32:51 140532 7

原创 线性复杂度反转单向链表

假设这是需要反转的链表,那么基本思路就是每次都把大一些的一个放到头指针的后面即第一次把2放到1的前面,这个可以通过把1的next指向3,2的next指向1,再把头节点的next指向2这样就得到了head---2---1---3---4然后再把一下个大一点的数这样操作,即为把3放到头指针后面,把1的next指向4,把3的next指向2,把head的next指向3这些操作只需要利用一些

2015-09-24 20:29:02 1259

原创 HDU2.3.4 How Many Trees?

其实就是给定顶点数,求二叉树的数目可以这样想:先确定一个根,那么它的左子树为0个顶点时,右子树有n-1个顶点,并且还是二叉树,这就把问题的规模缩小了同理,左子树有1个顶点时,右子树有n-2个顶点所以假设f(n)为n个顶点对应的二叉树的数目,那么可以容易得到递推公式:f(n)=f(0)*f(n-1)+f(1)*f(n-2)+...+f(n-1)*f(0)这就是一个很露骨的卡特兰数

2015-09-08 21:06:51 408

原创 HDU2.3.3 Hat's Fibonacci

算是一道水题把(虽然我还是WA了很多次)还是高精度,但这次的数据范围有点大,都已经有两千多位数了,用每个单元放4位数字,貌似后来试了一下还是可以放得下,也是能AC的我刚开始怕不够,就用每个单元放8位数字,就是把高精度模板里的DLEN改成8   但是刚开始忘了把相应的MAXN改成99999999,所以WA了每个单元存放8位数字,用a[256]就足够了,然后因为最多2005位,则最大的数也

2015-09-08 20:25:41 473

原创 cout的格式控制——关于cout.width()和cout.fill()

今天做C++的高精度的时候发现高精度的模板输出使用到了cout.width()和cout.fill()以便把每个单元存放的四位数字输出于是就去查找了一下关于cout.width()和cout.fill()的相关信息关于cout.width():a、控制符int width()将用来调整字段的宽度,因为width是成员函数,所以要通过对象来调用,比如cout.width()将显示当前

2015-09-08 16:16:47 32533 1

原创 HDU2.3.1 A + B Problem II

依旧是用大数模板,但是我很作死的自己改了一下模板,把输出大数里的“cout结果就WA了三次,然后用9999与1检查发现只输出了10而不是10000,但是让它输出长度的话还是2是没有错的,只是后面那4个0只输出了一个然后回过头去检查才发现cout还是很强大的,因为用了cout.width(4)与cout.fill('0')使程序能够保证就算原来某个单元(最后一个单元除外)里存的如果不到4位也

2015-09-08 16:00:44 480

原创 HDU2.2.8 Big Number

感觉自己脑子还是太僵了,上一题是大卡特兰数,用到了高精度,这题看到又是大数阶乘,所以想都没想就套了高精度模板,然后自己写了一个输出数字位数的函数,这里还要注意大数模板里的len是指高精度里的数组的程度,但是数组的每个单元最多是可以存放四个数字的,所以最后的那个单元要特殊考虑。但是后来Runtime Error(ACCESS_VIOLATION)了很多次以后才发现n的范围是给到了10的7次方,那

2015-09-08 11:20:27 469

原创 HDU2.2.7 Train Problem II

就是一个卡特兰数的问题,而且出题者比较坏,数据给的很大,所以必须用C++的高精度,或者直接用JAVA自带的BigInteger类型,但由于自己用不来java,所以只好用高精度了。关于卡特兰数,有以下递推:令h(0)=1,h(1)=1,catalan数满足递推式:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2)例如:h(2

2015-09-07 22:50:28 613

转载 C++重载运算符相关

原作地址:http://blog.csdn.net/dingyuanpu/article/details/5852825看到觉得很有用就先转载过来,如原作者反对,请联系我,我会立即删除,谢谢 C++中预定义的运算符的操作对象只能是基本数据类型,实际上,对于很多用户自定义类型,也需要有类似的运算操作。例如: class complex {  public:   compl

2015-09-07 20:08:54 512

转载 C++默认参数注意事项

原作地址:http://blog.csdn.net/weiwenhp/article/details/8481026看到了觉得很有用就转载了如果原作者觉得侵权请联系我,我会立即删除,谢谢  默认参数在函数参数较多时是非常有用的.可以只传必须的值,其它取默认值.使用方法如下: 1.默认参数是严格按照从左至右的顺序使用所以只有如下使用才是合法的(1)参数全部为默认值

2015-09-07 19:55:52 845

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除