自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 effective c++ 复制对象时勿忘每一个成分

自己定义拷贝构造函数的时候,派生类要注意复制基类的成分!class Base{private: int baseData;};class Derived : public Base{public: Derived(const Derived& c) :Base(c), derivedData(c.derivedData){} Derived &

2015-09-30 20:08:47 328

原创 uvaoj 1073 - Glenbow Museum

题解: 1.发现只可能有4个R和若干个OR 2.算出这些符号的排列组合 3.注意如果这里面不包括O在最后一位的情况,所以需要在这些情况下加上最后一个OR后面没有R的情况,其实就是把序列右移一位使得最后一位是O的情况数 总结: 1.这次自己思考的方法比汝佳哥简单一些,很是开心 2.这次思考题目的节奏很是优秀,思考一段时间,想不到了就做些别的事情,一点点攻破难关!而且效率很高,节约了时间#i

2015-09-30 19:38:34 357

原创 在operator=中处理自我赋值

自我赋值发生在Widget a;//.......a = a;上面这种情况一般不会发生。。 但是如果b[i] = b[j];*p1 = *p2i == j 或者 p1和p2指向同一个对象 自我赋值就发生了class Widget{public: Widget &operator = (const Widget& c) { delete pb;

2015-09-29 21:23:08 396

原创 effective c++ 令operator=返回一个reference to *this

令operator=返回一个reference to *thisclass Widget{public: Widget & operator = (const Widget& c) { return *this; //这个协议也适用于+= -= *= }};因为为了实现连锁赋值int a,b,c; a = b = c = 0;

2015-09-29 17:37:09 394

原创 effective c++绝不在构造和析构过程中调用virtual函数

不应该在构造函数和析构函数期间调用virtual函数class Transaction{public: Transaction() { init(); } void init() { logTransaction(); } virtual void logTransaction() = 0;};class

2015-09-29 00:12:15 641 3

原创 uvaoj 11361 - Investigating Div-Sum Property

题解: 1.数位dp,d[len][m1][m2](比如n1,n2,n3,n4这个四位数) (1)长度为len的数,在这里是4 (2)(n1 + n2 + n3 + n4) % k == m1 (3)(n1n2n3n4) % k == m2 满足条件的数有多少个 2.所需要求的数分段表示出来 比如:0—123分解为(1)(2) (1).0-99 (2).100—123 100—1

2015-09-28 19:42:29 537

原创 uvaoj 1085 - House of Cards

题解: 裸的最大最小搜索,alpha beta 剪枝 总结: 1.对着刘汝佳的代码写得,汝佳哥代码的亮点还是很多 2.因为最后只需要两个选手得分的差值,所以直接算出A选手得分 减去 B选手得分的大小,如果不符合则取反,而计算分数的时候可以直接把A得分算为正(加),B得分算为负(剪),A + (-B)的形式我认为正是数学统一思想的体现 matrix67这样介绍的负数 而且很好的减少了代码量

2015-09-20 21:50:15 1907

原创 effective c++ 别让异常逃离析构函数

C++并不禁止析构函数吐出异常,但是它不鼓励这样做class Widget{public: ~Widget() { throw 20; };};vector<Widget>vec;当vec被销毁时,他有责任销毁其内含的所有Widget 如果vec内含10个Widget,在析构第一个元素期间,有个异常被抛出,其他9个Widget还是应该被销毁,否则他们

2015-09-14 22:28:22 440

原创 uvaoj 1388 - Graveyard

题解: 贪心 总结: 对于查错,还是要注意debug时间,这两天查项目的bug浪费了太多的时间,效率还不高,需要继续提高效率#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;int n,m;int main(){ while(cin >> n >> m

2015-09-14 21:58:12 439

原创 uvaoj 11300 - Spreading the Wealth

题解: 1.列关系式,定义: 第0个人给第1个人A0块钱 第1个人给第2个人A1块钱 … 最后ans = |A0| + |A1| + |A2| + |A3|….. 2. A0表示A0 A0表示A1 A0表示A2 … 总结: 1.很多复杂的题目,感觉都可以通过列关系式的方法解出来,列关系式可以帮助整理思维#include<iostream>#include<cstring>

2015-09-14 01:18:19 402

原创 从RealSense中提取完整的深度和彩色图像,并存在opencv中的Mat里

这几天,简单的学习了如何调用别人函数,使用别人的代码,从开始的手足无措,到现在的胸有成竹(盲目的自信),想把这些总结起来,形成宝贵的经验教训,和大家分享。1.使用别人的代码,可是要珍惜那几行人类的注释啊! 2.看完注释,了解了大概情况,从重点地方下手,找到最核心的代码,概括的了解写代码各自的意义(不必急需了解每一行代码的意义,抓住重点,节约时间) 3.对于不懂的函数但意义重大的函数,F12查看定

2015-09-13 13:33:57 12656 21

原创 effective c++ 为多态基类声明virtual析构函数

C++的多态性class TextBlock{public: virtual void foo() { cout << "TextBlock" << endl; }};class Text : public TextBlock{public: void foo() { cout << "Text" << endl;

2015-09-10 22:39:59 371

原创 uvaoj 10891 - Game of Sum

总结: 1.对于在脑子中想的题目,在做提前也简单的纸上画一画,将思维转化成逻辑语言,方便写代码,也方便检查#include<iostream>#include<cstdio>#include<cstring>using namespace std;#define MAXN 105int d[MAXN][MAXN],f[MAXN][MAXN],g[MAXN][MAXN],s[MAXN];

2015-09-10 21:50:05 335

原创 uvaoj 11729 - Commando War

题解: 1.贪心,按j从大到小排序 证明: 1.j[0] > j[1] if(j[0] < b[1] + j[1]) b[0] + b[1] + j[1] vs b[1] + b[0] + j[0] if(j[0] > b[1] + j[1]) b[0] + j[0] vs b[1] + b[0] + j[0] 都是左边更优一些,所以j大的优先分配任务 总结: 1.坚持每日一题有

2015-09-09 23:27:31 444

原创 effective c++若不想使用编译器自动生成的函数,就应该明确拒绝

友元函数: 友元函数只是一个普通函数,并不是该类的类成员函数,它可以在任何地方调用,友元函数中通过对象名来访问该类的私有或保护成员。class A{public: A(int _a):a(_a){}; friend int getA_a(A &_classA);//友元函数private: int a;};int getA_a(A &_classA){

2015-09-09 20:42:12 496

原创 effective c++:了解c++默默编写并调用了哪些函数

编译器可以暗自为class创建default构造函数,copy构造函数,copy assignment操作符,以及析构函数#include <iostream>#include<cstdio>#include<cstring>#include<effective_c.h>using namespace std;template<class T>class TextBlock{publ

2015-09-08 23:10:10 426

原创 uvaoj 10635 - Prince and Princess

题解: 1.找到a数组中的元素,对应b数组中的位置,然后在这些位置中找到最长递增子串#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;int const MAXN = 250 * 250 + 10;int idx[MAXN],num[MAXN],d[MAXN

2015-09-08 11:58:19 392

原创 uvaoj 1394 - And Then There Was One

题解: 1.约瑟夫环变形 2.倒着推: 最后剩一个人,如果把他编号为一号 然后推如果剩俩人,他是对应的几号 然后如果三人,这个人对应的几号。。。。 总结: 1.记得约瑟夫环问题,大一上思考了一个学期,大二上思考了半节课,现在思考了几分钟就推出来了,可能一个是我知道的知识多了,二是,我清楚为何要这么推了,这就是一个人解决问题的思路。所以,思考问题的方式很重要,养成一个好的思维模式很重要

2015-09-07 21:01:05 487

原创 effective c++ 确定对象被使用前已经被初始化

class TextBlock{public: TextBlock(const string & name,const string & address) { cnt = 0; theName = name; theAddress = address; //赋值而非初始化 }private: int

2015-09-07 12:06:16 339

原创 uvaoj 12003 - Array Transformer

题解: 裸分块 总结: 1.对于学习那得起,放得下。 2.注意安排学习和休息的时间。 3.今天调试opencv的编译环境时间有点长,下次注意时间的把握#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;

2015-09-06 19:29:24 403

原创 effective c++ 尽可能的使用const

#include <iostream>#include<cstdio>#include<cstring>#include<effective_c.h>#include<set>#include<iterator>#include<vector>using namespace std;vector<int>vec;int main(){ const int * a;

2015-09-06 10:31:53 358

原创 uvaoj 1362 - Exploring Pyramids

总结: 1.因为时间很宝贵,需要提高效率来多学一些东西,如果思维陷入困境,需要及时做些别的事情,让自己跳出来 2.做题的时候要相信自己,也不要因为觉得大概做出来了就急于敲代码,冷静,从容,才能将效率最大化 3.明确递推关系,函数所求值的定义!#include<iostream>#include<cstdio>#include<cstring>using namespace std;#d

2015-09-05 15:56:43 524

原创 effective c++ 尽量以const enum inline 替换 #define

为了将常量的作用域限制在class内,你必须让它成为class的一个成员#include <iostream>#include<cstdio>#include<cstring>#include<effective_c.h>using namespace std;class A{public: A(); const static int NUM = 1;//声明而非定义

2015-09-05 15:18:17 433

原创 effective c++导读

声明为explicit的构造函数更受欢迎,它禁止编译器执行非预期的类型转换#include <iostream>#include<cstdio>#include<cstring>using namespace std;class B{public: explicit B(int a = 1){}};class C{public: C(int a = 1){}};

2015-09-04 22:42:44 400

原创 hdu 5425 Rikka with Tree II

题解: 1.因为只需要保存小数点后6位,所以并不需要把1e5这么大的数全部枚举出来 2.double的表示长度也只有2 ^ 1000,所以不能直接把2 ^ 100000算出来,要提前约分 3.double的精度为15–16位,作为常识可以顺便记下来 4.最多需要枚举最大的100个数,因为10e5 * 10e5 * 10e5 / 2 ^ 100 约= 1 / 1e15,几乎再小的数枚举也对结果

2015-09-03 22:37:12 493

原创 uvaoj 11174 - Stand in a Line

总结: 1.将问题统一化,就像这个题,有些人没有父节点,但是可以虚拟一个父节点 2.如果代码有错,不急于输出中间结果,先静态查错,如果失败,做一分钟别的事情(为了放空自己,避免走死胡同,因为人脑习惯先从大方面想问题,再深入想细节,如果不放空自己,就容易在细节的地方走死胡同) 3.弱化,或者增强条件帮助思考问题#include<iostream>#include<cstdio>#includ

2015-09-02 18:58:20 369

Feature Extraction

harris corner的推导方式。包括很多种类型的关键点的寻找,概要实现方法

2015-11-28

空空如也

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

TA关注的人

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