自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

liuyanfeier的专栏

小白进阶之路

  • 博客(22)
  • 收藏
  • 关注

原创 51nod 1163 (贪心+优先队列)

有N个任务,每个任务有一个最晚结束时间以及一个对应的奖励。在结束时间之前完成该任务,就可以获得对应的奖励。完成每一个任务所需的时间都是1个单位时间。有时候完成所有任务是不可能的,因为时间上可能会有冲突,这需要你来取舍。求能够获得的最高奖励。分析:首先可以将所有完成时间截止日期大于n的任务的截止日期置为n,这是因为遍历完所有的任务只需要n步,所以只需要的时间为n,当截止日期大于n的时

2016-03-23 20:10:46 594

原创 51nod 1182(简单贪心)

约翰认为字符串的完美度等于它里面所有字母的完美度之和。每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数。约翰不在乎字母大小写。(也就是说字母F和f)的完美度相同。给定一个字符串,输出它的最大可能的完美度。例如:dad,你可以将26分配给d,25分配给a,这样整个字符串完美度为77。简单题,直接统计每个字符出现的次数然后依次从大到小赋值26,2

2016-03-22 17:04:48 309

原创 51nod 1191(贪心+优先队列)

有N只兔子,每只有一个血量B[i],需要用箭杀死免子。有M种不同类型的箭可以选择,每种箭对兔子的伤害值分别为D[i],价格为P[i](1 特别说明:1、当箭的伤害值大于等于兔子的血量时,能将兔子杀死;2、血量B[i],箭的伤害值D[i],箭的价格P[i],均小于等于100000。分析:贪心+优先队列。将兔子排序之后在将弓箭按伤害值排序,之后从大到小枚举兔

2016-03-22 16:33:57 395

原创 stl之map介绍

一.Map概述 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的

2016-03-20 21:01:14 350

原创 51nod1432 贪心

上船问题。排序之后枚举最大重量就可以了。#include #include #include #include #include #include #include #include using namespace std ;#define mem(a) memset(a,0,sizeof(a))#define inf 100000005int c

2016-03-19 13:08:43 270

原创 进程和线程的区别以及联系

概念:进程:进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的地址空间,即进程空间。进程至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。线程:线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点

2016-03-15 20:07:31 509

原创 malloc/free 和 new/delete 的区别

解析:mallo/free是C/C++的标准库函数,new/delete是C++的运算符。对于非内部数据类型的对象而言,光用malloc/free无法满足对象的要求,对象在创建的同时会自动调用构造函数,对象在消亡之前会自动执行析构函数。由于malloc/free是库函数而不是操作符,不在编一起控制范围内,不能把执行构造函数和析构函数的任务强加给malloc/free,此时只能使用new/d

2016-03-15 18:21:18 401

原创 hdu 1165 递推

题目:As is known, Ackermann function plays an important role in the sphere of theoretical computer science. However, in the other hand, the dramatic fast increasing pace of the function caused the val

2016-03-15 17:28:39 339

原创 hdu 1561 (树形dp+依赖背包)

ACboy很喜欢玩一种战略游戏,在一个地图上,有N座城堡,每座城堡都有一定的宝物,在每次游戏中ACboy允许攻克M个城堡并获得里面的宝物。但由于地理位置原因,有些城堡不能直接攻克,要攻克这些城堡必须先攻克其他某一个特定的城堡。你能帮ACboy算出要获得尽量多的宝物应该攻克哪M个城堡吗?分析:和依赖背包有些类似,就是想要取一个值的时候要先取一个其他的值。  这个题目明显可以先根据依赖

2016-03-13 18:43:55 441

原创 51nod 1043

题意:求在2*n位的数字中,前n位的和等于后n位的和的个数,比喻n=1的时候,11,22,33...99等数字都是的,还有1102,2121等都是满足要求的数字。n分析:数位dp题目,这道题目想了很久,刚开始以为是dp[i][j] 表示的是前 i 位数字和后 i 位数字的差为 j  ,是这样的。结果递推方程想了很久也没有一个统一的结果,需要一个一个的来推,倒是大概好像有一个统一的想法,

2016-03-12 21:14:14 579

原创 hdu1203 01背包问题

Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了。要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的。Speakless没有多少钱,总共只攒了n万美元。他将在m个学校中选择若干的(当然要在他的经济承受范围内)。每个学校都有不同的申请费用a(万美元),并且Speakless估计了他得到这个学校offer的可能性b。不同学校之

2016-03-09 19:43:50 356

原创 poj2342 树形dp入门

题意:公司要举办一次晚会,但是为了使得晚会的气氛更加活跃,每个参加晚会的人都不希望在晚会中见到他的直接上司,现在已知每个人的活跃指数和上司关系,求邀请哪些人来能使得晚会的总活跃指数最大。分析:毫无疑问肯定需要先建树,然后就是从这棵树里面选择一些点,当然不能暴力。我们用dp[i][0]表示不选择第i棵树,他的子数所能取得的最大值,dp[i][1]表示选取第i棵树的最大值。然后我们

2016-03-05 16:00:08 362

原创 hdu 4586 概率dp

题意:扔一个有n面的骰子,可能得到正面朝上的那个面上面的数字,有一些面比较特殊,扔到这些面上之后可能继续扔,问最终能等到的数字和的期望。分析:这道题目严格意义上已经不是dp了,就是一道概率分析题目。我们假设最终的期望为ans,那么我们可以一个面一个面的分析,假设正面朝上的不是一个特殊的面,那么ans += 1/n * a[i]  ; 假设是一个特殊的面朝上,那么 ans +

2016-03-04 19:35:14 291

原创 hdu 3853 概率dp入门

题意:在一块r*c的棋盘上,从位置(1,1)的地方走到位置为(r,c)的地方,每走一步的代价为2,在位置(i,j)可能会走到位置(i+1,j),(i,j+1)以及(i,j),题目中给出每个点走向下一个方向的概率,求花的总代价。分析:一道很基础的概率dp,dp[i][j]表示的是从位置(i,j)走到(r,c)所花的代价,那么dp[r][c] = 0 , 最后要求的就是dp[1][

2016-03-04 17:55:10 360

原创 poj2096 概率dp入门

题意:一个系统有s个子系统,一共会产生n中bug。某人一天可以发现一个bug,这个bug属于一个子系统,属于一个种类,每个bug属于某个子系统的概率是1/s,属于某个分类的概率是1/n,问发现n种bug并且每个子系统都发现bug的天数的期望。分析:简单的入门概率dp,在这之前没有做个这个类型,所以讲解也是看的网上的,这里直接贴过来。 dp[i][j]表示已经找到i种bu

2016-03-04 15:52:30 444

原创 整数划分 区间dp

题目链接点击打开链接题目大意是说有一个不超过二十位的数字,要将这个数字划分成n段,最后让这n段数字相乘,问怎么划分使乘积最大。分析:一个很经典的区间dp问题,我们可以先保存下这个数字的每段的大小,也就是a[i][j]表示的这个数字的i位到j位的大小。然后就是一个很普通的区间dp了,dp[i][j]表示的是前i位里面插入j个乘号所得到的最大值。我们知道最后的乘积肯

2016-03-04 13:27:27 511

原创 hdu1160 最大上升子序列问题+输出路径

题意:就是在一个序列里面找出最长的子序列,这个序列中体积上升,速度下降。分析:就是按体积排序之后素的的找出最大下降子序列就可以了,麻烦一点的就是需要输出顺序。#include #include #include #include #include #includeusing namespace std;const int maxn = 1005;struct

2016-03-03 18:31:01 343

原创 hdu1159 最长公共子序列

简单题,要求两个字符串的最长公共子序列。dp[i][j]表示的是第一个字符串的前i个子串和第二个字符串的前j个子串的最长公共子序列 。//最长公共子序列#include #include #include #include #include using namespace std;const int maxn = 1005;int dp[maxn][maxn];//

2016-03-03 16:13:20 311

原创 hdu 1158(dp)

题意:一项工程需要n个月完成,每个月最少需要的员工数为a[i],雇佣一个员工和开除一个员工的费用为hire与fire,每个员工每个月的工资为salary,现在要求完成这项工程最少的花费。n分析:由于这道题目没有告诉我们a[i]的范围,所以我想了很久迟迟没有动手,因为想到一个方法的时间复杂度为max(a[i])^2*n , 实在是不知道怎么办了就用这种方法写了,WA了几次就过了,

2016-03-02 21:29:42 316

原创 hdu3555 + 2089 (数位dp入门)

hdu3555给出数字n,要求1到n范围内所有的数字中出现连续49的数字的个数。n很大。例如500,那么出现连续49的数字有49,149,249,349,449,490,491,942...499等15个数字。这道题目就是明显的数位dp入门题目。我们先预处理一下,dp[i][j]表示的是i位数字并且第i位上的数字为j所不含49的个数#include #include

2016-03-02 20:00:36 799

原创 hdu 2089(dp)

题意:给出一个区间,求这个区间里面的数字一共有多少个数字其中不含数字4并且没有连续的62 。例如,4,14,412,162等等数字就不满足要求。分析:网上都说这题是数位dp,好像是的。可是我还没有入门数位dp,就是用的普通的dp来写的。dp[i]表示的是在区间(1,i)之间满足要求的数字的个数,递推公式为:dp[i] = dp[i-1]+0/1   .#incl

2016-03-01 19:58:49 249

原创 hdu 1078 (dp记忆化搜索)

题意:有一个n*n的方格,每个格子有一个价值,经过这个格子就可以得到这个价值,每次可以横着或者竖着一步最多走K格,并且每次走的格子要比上一个格子的价值大,问现在从位置(1,1)走,最大可以获得的价值.分析:记忆化搜素,dp[i][j]表示的是从位置(i,j)开始走可以获得的最大价值。记录下这些价值就可以了。#include #include #include #i

2016-03-01 19:02:58 389

空空如也

空空如也

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

TA关注的人

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