自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

herongwei 的 BLOG

心中无敌,方可无敌于天下!个人公众号:「herongwei」

  • 博客(43)
  • 资源 (12)
  • 收藏
  • 关注

原创 NYOJ 36 &&HDU 1159 最长公共子序列(经典)

链接:click here题意:tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。输入第一行给出一个整数N(0接下来每组数据两行,分别为待测的两组字符串。每个字符串长度不大于

2015-01-31 22:10:53 1198

原创 POJ 1159 Palindrome(滚动数组)

链接:click here题意:给你一串字符串,让你求最少加入几个字符,才能使得这个字符串是个回文串。思路:设a[i]是这个字符串,b[i]是这个字符串的逆序串。那么a[i],b[i]的最长公共子序列就是所求的字符串里拥有的最大的回文串。然后用总串长减去最大的回文串长度即为所求。求最长公共子序列的公式为:dp[i][j]=max(dp[i-1] [j],dp[i][j-1]

2015-01-31 21:54:13 1038

原创 NYOJ 820 又见01背包 (价值和重量互换)

链接:click here题意:描述     有n个重量和价值分别为wi 和 vi 的 物品,从这些物品中选择总重量不超过 W 的物品,求所有挑选方案中物品价值总和的最大值。  1   1   1   1 输入多组测试数据。每组测试数据第一行输入,n 和 W ,接下来有n行,每行输入两个数,代表第i个物品的wi 和 vi。输出满足题意的最大价值,每组测试数据

2015-01-31 21:18:33 1283

翻译 滚动数组 (定义和用法)

滚动数组的作用在于优化空间,主要应用在递推或动态规划中(如01背包问题)。因为DP题目是一个自底向上的扩展过程,我们常常需要用到的是连续的解,前面的解往往可以舍去。所以用滚动数组优化是很有效的。利用滚动数组的话在N很大的情况下可以达到压缩存储的作用。一个简单的例子:斐波那契数列:一般代码:#include#includeusing namespace std;int Fib[

2015-01-31 20:49:15 1615

转载 POJ 并查集小结

转载自:http://blog.csdn.net/wahaha1_/article/details/8068947并查集小结并查集大体分为三个:普通的并查集,带种类的并查集,扩展的并查集(主要是必须指定合并时的父子关系,或者统计一些数据,比如此集合内的元素数目。)POJ-1182经典的种类并查集POJ-1308用并查集来判断一棵树。。注意空树也是树,死人

2015-01-31 20:01:40 875

翻译 深入了解scanf/getchar/gets/cin等函数

scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的。但是有时候却就是因为使用这些函数除了问题,却找不出其中的原因。下面先看一个很简单的程序:程序1:#include int main(){char ch1, ch2;scanf("%c", &ch1); scanf("%c", &ch2);printf("%d %d

2015-01-30 10:53:38 1169 2

原创 NYIST 116 士兵杀敌(二)

链接:click here题意:南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军经常想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。南将军的某次询问之后士兵i可能又杀敌q人,之后南将军再询问的时候,需要考虑到新增的杀敌数。思路:RMQ 入门代码:#include //RMQ #incl

2015-01-29 22:17:42 1055

原创 NYOJ117&& 树状数组求逆序数

(转)树状数组可以用来求逆序数, 当然一般用归并求。如果数据不是很大, 可以一个个插入到树状数组中, 每插入一个数, 统计比他小的数的个数,对应的逆序为 i- getsum( data[i] ),其中 i 为当前已经插入的数的个数, getsum( data[i] )为比 data[i] 小的数的个数i- sum( data[i] ) 即比 data[i] 大的个数, 即逆序的个数但如果数据比较大

2015-01-29 21:57:02 1096

原创 RMQ && 树状数组 (初学)

先复习一下今天刚学的RMQ算法知识;RMQ算法(Range Minimum Query):1.算法思想         求静态范围最值问题,适合于静态连续区间查询。          A[ i ] [ j ] 的值代表的是原数组中以 i 开始的连续 (12.代码 //2.1 预处理代码for(int j = 1 ; j != 20 ; ++j ) //

2015-01-29 21:45:18 1324

原创 ZOJ 1755 && POJ 1547 Clay Bully(简单排序+map容器)

链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1755题意:Ms. Terry is a pre-school art teacher who likes to have her students work with clay. One of her assignments is to form a lump

2015-01-27 19:28:51 1124

原创 ZOJ 1760 &&POJ1552 Doubles (模拟)

链接:click here题意:叫你求一个数是另一个数的二倍的这样的组合有多少个。思路:纯模拟,一重循环:读入当前数据组a,并累积数据元素个数n,循环的结束标志是读入数据0,两重循环结构枚举组内所有数据对a[i] a[j] 判断是否成两倍关系代码:#include #include #include #include #include using namespace

2015-01-27 19:22:20 1309

原创 ZOJ 2969 && BNU16488 Easy Task

ZOJ 2969 && BNU16488 Easy Task

2015-01-26 23:00:38 1038

原创 ZOJ 1049 &&HDU 1065 I Think I Need a Houseboat

ZOJ 1049 &&HDU 1065 I Think I Need a Houseboat

2015-01-26 22:53:38 918

原创 ZOJ 1037 && HDU 1046 Gridland (找规律)

ZOJ 1037 && HDU 1046 Gridland (找规律)

2015-01-26 22:36:29 1213

原创 ZOJ 1938 Binomial &&poj 2249 (Binomial Showdown )(睡前一水)

ZOJ 1938 Binomial &&poj 2249 (Binomial Showdown )

2015-01-25 23:23:57 1452

原创 ZOJ 2829 Beautiful Number(睡前一水)

ZOJ 2829 Beautiful Number(睡前一水)

2015-01-25 23:18:24 1053

原创 poj 3100 && zoj 2818 ( Root of the Problem ) (睡前一水)

poj 3100 && zoj 2818 ( Root of the Problem )

2015-01-25 23:15:48 1074

原创 POJ 2472 &&ZOJ 2797 (106 miles to Chicago)

POJ 2472 &&ZOJ 2797 (106 miles to Chicago)

2015-01-25 21:31:58 1352

原创 CoderForce 189A 割丝带(DP)

CoderForce 189A 割丝带(DP)

2015-01-24 18:46:15 928

原创 UVA 10341 (二分查找+精度)

UVA 10341 (二分查找+精度)

2015-01-24 17:14:16 1078

原创 UVA 10566 && POJ 2507 Crossed Ladders (几何)

UVA 10566 && POJ 2507 Crossed Ladders (几何)

2015-01-24 16:53:33 1389

原创 POJ-1700 &&NYOJ 47 过河问题【贪心】

链接:NYOJ:click here POJ:click here题意:在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,N个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,N人所需要的时间已知;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的时间。问题是,如何设计

2015-01-24 08:37:47 1848

原创 HDU1874 畅通工程续

HDU1874 畅通工程续

2015-01-22 18:30:39 1126

原创 HDU 2544 最短路(最短路入门)

HDU 2544 最短路(最短路入门)

2015-01-22 17:16:31 1341

原创 NYOJ 115 城市平乱(Dijkstra入门)

NYOJ 115 城市平乱(Dijkstra入门)

2015-01-22 15:43:50 1139

原创 HDU5137 How Many Maos Does the Guanxi Worth (14广州现场赛K题 )--最短路问题

HDU5137 How Many Maos Does the Guanxi Worth (13广州现场赛K题 )--最短路问题

2015-01-22 11:08:22 1061

翻译 《数据结构复习笔记》--哈夫曼树,哈夫曼编码

先来了解一下哈夫曼树.带权路径长度(WPL):设二叉树有n个叶子结点,每个叶子结点带有权值 wk,从根结点到每个叶子结点的长度为 lk,则每个叶子结点的带权路径长度之和就是:最优二叉树或哈夫曼树: WPL最小的二叉树。〖例〗有五个叶子结点,它们的权值为{1,2,3,4,5},用此权值序列可以构造出形状不同的多个二叉树。其中结果wpl最小值的是:33=(1+2)*3+(3

2015-01-21 20:31:27 1927

翻译 《数据结构复习笔记》--堆和堆排序

数据结构-堆

2015-01-21 19:47:31 1144

翻译 一般素数打表+高效算法

最近几天脑子越来越来笨了,一个简单的素数环问题纠结一天,没这么搞懂回溯的思路,不过设计到素数的话,突然想总结一下常用的素数打表,一般用的是下面的代码:#include //素数打表#include #include #include #include using namespace std;#define maxn 1000000bool p1[maxn]; //判断p[

2015-01-21 11:45:15 2017

原创 搜索学习(3)--NYOJ1058--部分和问题

挑战编程--初级篇:部分和问题(P30)代码实现://部分和问题:int a[maxn];int n,m,i,j,k;bool dfs(int i,int sum) //已经从前i项得到了和sum,然后对于i项之后的进行分支{ if(i==n) return sum==k; //如果前n项都计算过了,则返回sum是否与k相等 if(dfs(i+1,sum

2015-01-20 17:50:18 1083

原创 POJ 3111 K Best &&NYOJ 914 (二分+ 贪心,最大化平均值)

poj3111 && NYOJ 914 有n个物品的重量和价值分别是w[i]和v[i],从中选出K个物品使得单位重量的价值最大。(1<=k<=n<=10^41<=w[i],v[i]<=10^6)

2015-01-20 09:15:30 1414

翻译 《数据结构复习笔记》--二叉平衡树

二叉平衡树:百度百科:click here平衡二叉树(Balanced Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。构造与调整方法 平衡二叉树的常用算法有红黑树、AVL、Treap等。 最小二叉平衡树的节点的公式如下 F(n)=F(n-1)+F(n-2)+1 这个类似于一个递归的数列,可以参考Fibonacci数列,1是根节点,F(n-1)是左子树的节点数量,F(n-2)是右子

2015-01-18 22:17:00 1532

翻译 《数据结构复习笔记》--二叉搜索树

二叉查找树(Binary Search Tree),也称二叉搜索树、有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树:

2015-01-18 22:03:25 1074

翻译 《数据结构》复习笔记--二叉树2

二叉树的非递归遍历:中序遍历非递归遍历算法非递归算法实现的基本思路:使用堆栈:

2015-01-18 11:47:47 1357

原创 搜索学习(2)--NYOJ 58 最小步数

NYOJ 58 最小步数,DFS,

2015-01-17 17:40:22 952

原创 搜索学习(1)--POJ 1088滑雪 && NYOJ 10

搜索学习(1)--POJ 1088滑雪 && NYOJ 10

2015-01-17 16:47:13 991

翻译 《数据结构》复习笔记--二叉树1

在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。

2015-01-16 20:52:20 1129

翻译 《数据结构》复习笔记--树

树状图是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的

2015-01-16 20:17:31 1149

翻译 《数据结构》复习笔记--队列

《数据结构》复习笔记--队列的定义和实现

2015-01-16 20:03:24 1043

翻译 《数据结构》复习笔记--堆栈

《数据结构》复习笔记--堆栈的定义和实现

2015-01-16 19:40:51 1249

国密SM9算法型号

SM9算法是国密局颁布的最新商密算法型号,是基于用户标识的密码非对称算法。

2018-05-10

微信公众号二维码

微信公众号二维码

2017-07-01

2015 CCPC Nanyang onsite.pdf

2015 CCPC Nanyang onsite.pdf

2015-10-25

IOI2004 鹰蛋问题 &&BNUOJ 4283 Balls &&POJ 3783

从《鹰蛋》一题浅析对动态规划算法的优化

2015-09-22

搜索基础

总结一些搜索的相关类型的题目。

2015-09-22

搜索算法

搜索算法是利用计算机的高性能来有目的的穷举一个问题的部分或所有的可能情况,从 而求出问题的解的一种方法。搜索过程实际上是根据初始条件和扩展规则构造一棵解答树并 寻找符合目标状态的节点的过程。

2015-09-22

空空如也

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

TA关注的人

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