自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 动态规划之背包问题0.1

一、动态规划基本概念1. 概念动态规划是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。2. 动态规划的基本思想动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求

2017-08-14 09:54:35 382

转载 《一周开源弹》05期:不懂开源协议,就别瞎玩了!

一、开源软件发展的保障:分发协议前不久,4月26日,是 世界知识产权日。知识产权日旨在促进人们树立尊重知识、崇尚科学和保护知识产权的意识,营造鼓励创新和保护知识产权的法律环境。在4月28日,我们发布了来自BlenderCN社区罗聪翼的文章《 自由的成本——当开源遇上伪自主》,为大家介绍了国内两起涉嫌侵犯Blender分发协议,伤害开发者权益的事件,痛陈国内开源软件权利维护之路漫长且

2014-11-07 08:52:39 501

转载 内存堆栈

堆栈在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈其实是两种数据结构。要点:堆:顺序随意栈:先进后出堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(h

2014-10-29 13:46:33 351

转载 设置结构体对齐的方式

通常,我们在定义结构体的时候,不会管编译器是怎样的对齐方式,但在特定的场合,需要结构体占用内存数正好为内成员定义时的类型所占字节数之和。    例如:struct test{    int a;    char b;    int c;};  在编译时,编译器会按照默认对齐方式进行空间分配,在使用sizeof运算符得到的大小为12字节,但我们本意是按照9个字节的内存

2014-09-25 17:19:39 879

转载 QT中的.pro文件,以及.pri .prj .prl文件说明

在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下:1. 注释从“#”开始,到这一行结束。2.模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:TEMPLATE = appA> app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。

2014-07-15 14:40:59 5442

转载 【C++】编译 boost

理论上,本文适用于boost的各个版本,尤其是最新版本1.45.0;适用于各种C++编译器,如VC6.0(部分库不支持),VS2003,VS2005,VS2008,gcc,C++ Builder等。先总结一下Windows系统。一、下载首先从boost官方主页http://www.boost.org/下载最新版boost安装包(目前最新版是boost_1_45_0.7z)。二、安装

2014-01-06 16:33:13 717

转载 【C++】boost名称含义

Boost官网的《Geting Started On Windows》(http://www.boost.org/doc/libs/1_38_0/more/getting_started/windows.html)提到了Boost库的命名,摘录如下:以 libboost_regex-vc71-mt-d-1_34.lib 为例:lib 前缀:除了Microsoft Windows之外

2014-01-06 16:17:39 604

转载 c++能做什么

我找工作的时候也犹豫过的,考虑到底是要从事c++或者java。我学的是java,但是面试的时候是c++。。。。。所以,现在我做的是c++。提供一些自己的看法,希望能对你有帮助。c++与java相比,(1)内存方面。c++需要程序员跟内存打交道,即程序员可以自己管理内存。这增加了写程序的难度,因为如果管理不善的话,就会造成内存泄露,甚至引起系统崩溃。另一方面,如果管理合理,就能按照程

2013-11-30 01:52:56 1200

原创 (树形dp 依赖背包)hdu1561

#include #include using namespace std ;const int maxn = 200+10 ;const int root = 0; //所有森林的根,用于统一模板,本题可以不加struct node{ int father ; vector son ; int bag[maxn]; int num ;}dp[max

2013-10-27 18:22:38 474

原创 (树形dp) hdu 1520

#include #include using namespace std ;const int maxn = 6000+10 ;const int root = 0; //所有森林的根,用于统一模板,本题可以不加struct node{ int father ; vector son ; int maxvalue[2]; // 1表示当前节点参加,0表示不

2013-10-27 15:31:25 479

转载 菜鸟,大牛和教主,三者的区别

对菜鸟来说题目有三种:会算法且能AC的,会算法但不能AC的,不会做的对大牛来说题目有两种:会做的,不会做的对教主来说题目有两种:能AC的,数据有错的菜鸟提交WA了,找了N久找不出错时,在论坛大骂数据有错,但是没人理大牛提交WA了,找了N久找不出错时,写暴力程序或者求别人的AC程序对拍教主提交WA了,Judge马上修正数据菜鸟面对一道难题,直接暴搜大牛面对

2013-10-27 12:06:01 440

转载 离散化

中文名称:     离散化英文名称:     discretization定义:     将连续问题的解用一组离散要素来表征而近似求解的方法。把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。概述:    离散化是程序设计中一个非常常用的技巧,它可以有效的降低时间复杂度。其基本思想就是在众多可能的情况中“只考虑我需要用的值”。离散化可以改进一个低效的算

2013-08-07 09:31:19 454

原创 HDU 2577 How to Type (dp)

题意:给出一个包含大小写的字符串,问使用键盘打字至少需要按键多少下,可以使用shift 和caps lock 切换大小写。 Hint 例如The string “Pirates”, can type this way, Shift, p, i, r, a, t, e, s, the answer is 8.The string “HDUacm”, can type this w

2013-08-05 11:33:03 423

原创 HDU 4504 威威猫系列故事——篮球梦(背包最优方案数)

http://acm.hdu.edu.cn/showproblem.php?pid=4504  知道是DP就很好做了。。。dp[i][j]表示 前i个得分,得分为j的可能性为多少 #include using namespace std ;const int maxn = 66;long long dp[maxn][maxn] ;// 前i个得分,得分为j的可能性为

2013-08-01 15:59:43 625

转载 技术人员应真正学会的第二课程

如果说掌握一门赖以生计的技术是技术人员要学会的第一课的话, 那么, 我觉得, 技术人员要真正学会的第二课,不是技术,而是业务、交流与协作,学会关心其他工作伙伴的工作情况和进展。  为什么这么说呢? 因为技术人员太容易陷入“孤岛”状态,更注重自己的工作任务的完成,忽视其他工作伙伴的工作,甚至一无所知。 我就一直犯这样的错误。我敢说,对内心我还是比较明白清楚的,但是对外面所发生的事情实在是知之

2013-07-19 02:28:24 454

转载 C语言清空输入缓冲区的N种方法对比

C语言中有几个基本输入函数://获取字符系列int fgetc(FILE *stream);int getc(FILE *stream);int getchar(void);//获取行系列char *fgets(char * restrict s, int n, FILE * restrict stream);char *gets(char *s);//可能导致溢出,用

2013-07-19 02:14:19 500

转载 getch getche getchar的区别和缓冲区的概念

getch getche getchar的区别和缓冲区的概念今天同学问我一个问题,.Net上编译C程序最后的结果总是一闪而过。记得有个函数能够实现其功能,于是分不清这几个函数之间的关系,总结一下。1.输入输出缓冲区的概念(C++用的多一些)我想以一个例子说明,比如我想把一篇文章以字符序列的方式输出到计算机显示器屏幕上,那么我的程序内存作为数据源而显示器驱动程序作为数据目标,如果数据源直

2013-07-19 02:13:34 406

转载 c语言输入输出缓冲区的概念

1.getchargetchar()是stdio.h中的库函数,它的作用是从stdin流中读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了。而getch()和getche()是conio.h中的库函数,它的作用是从键盘接收字符。getchar带有显示。与前面两个函数的区别在于: getchar()函数等待输入直到按回车才结束(前提是缓冲区没有数据),回车前的所

2013-07-19 02:11:57 519

原创 hdu 4517 小小明系列故事——游戏的烦恼

题目: http://acm.hdu.edu.cn/showproblem.php?pid=4517解法:动态规划+滚动数组 #include #include using namespace std ;const int maxn = 2010 ;int n,m;char map[maxn][maxn] ;int row[2][maxn]={0} ,

2013-03-23 21:47:05 554

空空如也

空空如也

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

TA关注的人

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