theArcticOcean

博观而约取,厚积而薄发

排序:
默认
按更新时间
按访问量

动态规划初识

适合用动态规划的问题特征:可以分解成相互重叠的若干子问题; 满足最优性原理(结构性质):该问题的最优解中也包含着其子问题的最优解。一般地,子问题的联系体现在某种递推关系,通过这种递推计算可以把问题的解存储起来,后期直接使用,避免重复运算。 简单的dp例子:http://acm.nefu.edu.c...

2015-06-07 20:20:39

阅读数:258

评论数:0

poj 3468 A Simple Problem with Integers(线段树区间更新)

题意:http://poj.org/problem?id=3468 这纯粹研究区间更新,区间查询,熟练掌握线段树的运用技能。相比,单点更新,多了add标志,adding, query操作时也多了对它的特殊操作pushdown。 #include #include using namesp...

2015-06-05 22:01:35

阅读数:413

评论数:0

hdu 1394 Minimum Inversion Number(线段树单点更新)

题意:给定一个数字序列,如果一次次的把左边第一个数移动到最右边,它的逆序数将会发生变化,问:找出最小的逆序数。题意详见:http://acm.hdu.edu.cn/showproblem.php?pid=1394 首先解释逆序数:在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于...

2015-06-03 11:12:47

阅读数:400

评论数:0

poj 3264 Balanced Lineup (线段树)

题意:http://poj.org/problem?id=3264 这里需要用到线段树的查询,不过特别的是,它需要查找两个值,最大值和最小值,在查找操作中稍加处理即可。 #include #include #include #include using namespace std; co...

2015-06-02 16:35:34

阅读数:284

评论数:0

hdu 1754 I hate it(线段树单点更新)

题意:http://acm.hdu.edu.cn/showproblem.php?pid=1754 涉及区间查找,单点更新的操作,熟练掌握线段树的使用。 #include #include #include using namespace std; const int maxn=2e5+5; i...

2015-06-02 15:58:36

阅读数:291

评论数:0

线段树初识&hdu 1166 敌兵布阵

一些区间有关的问题,给一些区间线段求并区间的长度或并区间个数当数据范围过大时会让时间复杂度过高不满足解题时间的要求。此时需要一种高效的数据结构来帮助我们。线段树正是这样的工具,它借助分而治之的思想解决子问题,再将子问题的解组合起来。有关线段树的各种操作函数均用递归函数实现:

2015-06-01 23:13:55

阅读数:322

评论数:0

hdu 1022 Train Problem I (栈的应用)

题意:火车进站问题,判断出栈的顺序。 仅仅是栈的简单应用,熟练掌握即可。 #include #include #include #include using namespace std; stack sta; bool judge=true; int n,cnt,in[10],o...

2015-05-31 23:45:40

阅读数:334

评论数:0

扩展欧几里得,逆元初识(poj 1061+codeforce 7C line+hdu 1576 A/B)

扩展欧几里得,逆元。 poj 1061 青蛙的约会. codeforce 7C line hdu 1576

2015-05-31 00:08:52

阅读数:455

评论数:0

整数全排列(旋转法,next_permutation)

读了《C语言名题精选百则技巧篇》中的整数全排列,里面的算法是多样丰富的。看了旋转的基本思路和已经知道的最易用的next_permutation(),自己把两者都实现并且运行了一遍。只有不断学习,观察,猜想,推敲,实践才有可能弄懂算法的奥义。两种方式都产生相同数目的排列,但是次序是不同的。 旋转:...

2015-05-29 21:59:33

阅读数:624

评论数:0

hdu 2795 Billboard(线段树)

题意:给一个h*w的广告牌,一个单位高度是一行,然后有一些公告贴上去,公告是1*wi的大小的长纸条,优先贴在左上方,如果空间不满足就输出-1,可以的话就输出位置(第几行) 类似的区间问题首先想到的是线段树。但是这里要以行数为着眼点,left是上行数,right是下行数,把wi设为结点内的一个数据成...

2015-05-29 11:19:13

阅读数:294

评论数:0

hdu 1242 Rescue(BFS+优先队列)

起初只是用BFS做,但后来发现问题太多了,起点是一个,但可能有多个士兵,要找到最小的距离即要求每一个子问题的结果都是最小值。用深度优先搜索自然不能每次都返回较小值。而广度优先搜索就像使用了分身术一样,4个方向都有friend去找angel,各自返回自己的最小值,所以思路就是BFS+优先队列。 #...

2015-05-28 17:06:07

阅读数:424

评论数:0

hdu 4152 ZZY’s Dilemma

题意:详见http://acm.hdu.edu.cn/showproblem.php?pid=4152 暴力,枚举。大致的思路是简单的,就是一种一种情况的比较,找出符合条件的最大习惯总数。当然不用循环,情况是很多的,很复杂。写出一个递归函数,不断比较和更新答案即可。 #include #...

2015-05-27 16:27:57

阅读数:628

评论数:0

hdu 1005 number sequence

问题看出来了,只要首先出现1,1,那么循环节也就找到了(两个值决定后面的值,不断推算,这也算是类斐波那契数列的特点吧)。然后取模处理,输出即可。但是,奇怪的是提交后要么wa,要么runtime error.呵呵~不断改进:控制循环,简洁语句,让自己多想不让电脑多干。最终得到了答案: #includ...

2015-05-25 23:18:31

阅读数:442

评论数:0

hdu 2039 三角形

题意:给定三条边,请你判断一下能不能组成一个三角形。 初看题目真的不难,但是第一次提交居然错了,提示我Output Limit Exceeded,这是为什么?数组没开小,没有死循环,没用递归……逐步分析知道了是测试数据在作怪,除了特殊的边缘数据,样例数据也具有表达上的迷惑性。这里居然是浮点数,不...

2015-05-25 20:04:54

阅读数:351

评论数:0

poj 1401 Factorial

题意:找到N! 结果后面有多少个0. 思考的方向找对了,剩下的问题就会好办得多。得到几个0,也就是几个10相乘,10=2*5(素数表示的唯一性),问题转化成N有几个5因子,每一个5因子 必然有一个2相匹配(2因子比5因子多啊)。所以:15!--》3,  20!--》4,那么25呢?25!=24!*...

2015-05-24 15:11:19

阅读数:351

评论数:0

poj1595 prime cuts(快速筛选)

题意:  给定一个数字N,将1到N中的所有质数按照中心值为c的规定输出,规则详见题目。 本题不难,但是要注意这里1也算是素数列中的一员。其它的都是小事儿啦,用快速筛选找到1--1000内所有的素数和合数。然后A了。 #include #include using namespace std; b...

2015-05-24 08:35:27

阅读数:827

评论数:1

poj2689筛法应用

题意:输入两个数字L,U,0 完成这道题需要细心,读完题后我们可以找到解决问题的思路:由于”L and U (1<=L< U<=2,147,483,647)“,开一个2147483647的数组显然不能满足内存要求,又由于”The difference between L and...

2015-05-23 21:08:26

阅读数:421

评论数:0

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