摘要: 著名的N皇后问题,就是先按照行一行一行的找,先找第一行,第一行找到一列能满足条件,继续找下一行,如果下一行也找到一列能满足条件,继续找下一行,一次类推,最终找到解, 但是,如果找不到的话, 就说明上一行放的位置错误, 所以回溯到上一行中,继续找下一列,如果找不到,继续回溯,大体就是这么执行找到解的。... 阅读全文
posted @ 2014-11-01 10:39 Howe_Young 阅读(902) 评论(0) 推荐(0) 编辑
摘要: 此题是个非常经典的题目,这个题目包含了整数划分(一)和整数划分(二)的所有情形,而且还增加了其它的情形,主要是用递归或者说是递推式来解,只要找到了递推式剩下的任务就是找边界条件了,我觉得边界也是非常重要的一步,如果找不准边界,这个题也很难做出来,当时我就是找边界找了好长时间,边界得琢磨琢磨。递推步骤... 阅读全文
posted @ 2014-10-31 21:52 Howe_Young 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 排列在上一篇中已经写到,是个典型的深搜题,下面是介绍的组合数, 组合的基本定义是, 但是除了用这种传统的方法来求,可以用递归的方式或者是递推的方式来求, 说道递推,只要会递归, 就会递推了。关键的一部是递推式,可以定义一个函数func(int n, int k); 表示求的值,公式先放在这func(... 阅读全文
posted @ 2014-10-31 21:31 Howe_Young 阅读(2240) 评论(0) 推荐(1) 编辑
摘要: 这个是理解标记和取消标记,用一个vis数组来标记全排列代码: 1 #include 2 3 int a[10]; 4 int vis[10]; 5 int n; 6 void dfs(int step)//step是当前已经进去排列的个数 7 { 8 if (step == n)//如... 阅读全文
posted @ 2014-10-30 18:30 Howe_Young 阅读(713) 评论(0) 推荐(0) 编辑
摘要: 这道题目的递归思想和第一个题差不多, 主要思想是:func(n, m)的作用是将n划分为m个。1. 如果n m 的时候, 分为两种情况,一个是划分数中含有1, 一个是不含1, 所以含有1 的个数为func(n - 1, m - 1),意思就是从n去掉1,然后再划分m - 1个, 下面就是不含1的,... 阅读全文
posted @ 2014-10-30 16:59 Howe_Young 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 这个题理解了好大会才理解,看了网上的代码,不太理解,但是后来看了好几个人的, 大同小异吧,慢慢的就理解了。思路:递归函数的意思是, 将 n 划分为最大数为 m 的划分数, 可以分几种情况1. 当n = 1 的时候, 这时候就是将1划分, 也就是递归的出口, 1 肯定只能划分为 1, 所以返回12. ... 阅读全文
posted @ 2014-10-29 21:58 Howe_Young 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 这道题跟第二个题差不多,求单点的最大值。题目大意:有个高和宽分别为h, w的广告牌, 这个广告牌分成高为 1 的长条, 每条分别能贴长度为wi长度的广告, 输入的n为广告的条数,广告优先贴在最上边和最左边, 让输出每个广告能贴的层数,如果贴不下了,就输出-1主要思路:1. 建立线段树,初始化每个节点... 阅读全文
posted @ 2014-10-29 18:39 Howe_Young 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 其实输入输出外挂其实就是减少程序输入输出的时间, 因为常用的printf, scanf都要比cin, cout快,但是,有时候不用这个外挂的输出方式也会超时。而且这种输出方式对于大量数据的时候明显减少时间,其实它的快主要是因为 scanf和printf都是对缓冲区的读写操作,当程序执行的时候不会时间... 阅读全文
posted @ 2014-10-28 21:28 Howe_Young 阅读(767) 评论(0) 推荐(0) 编辑
摘要: 此题和上题略有不同,但是大体差不多,不过要把题意转换过来,题目大体意思为, 输入n, 也就是n个数,这些数为0 - (n-1), 这些数刚开始给定输入的顺序, 然后求他的逆序数,然后接着把第一个移到这个数列的末尾,这时候再求出一个逆序数,直到移动一个周期,也就是移动了n次, 求他们之中的最小的一个逆... 阅读全文
posted @ 2014-10-28 20:23 Howe_Young 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 这个题也是线段树的基础题,有了上一个题的基础,在做这个题就显得比较轻松了,大体都是一样的,那个是求和,这个改成求最大值,基本上思路差不多,下面是代码的实现 阅读全文
posted @ 2014-10-28 15:18 Howe_Young 阅读(245) 评论(0) 推荐(0) 编辑