上一页 1 ··· 5 6 7 8 9
摘要: 果断最近想要刷一些题目,所有现在开始对汉诺塔的拓展版感兴趣,hdu上面有很多对于汉诺塔的不同版本,感觉上还是蛮不错的题目,但是实际上来说,有些我自己还是没有理解的很深,希望以后能够想的更加透彻。2064,题意就是现在不准直接从最右边的柱子直接拿盘子到最左边的,当然从左边到右边也不行,那么对于每一次那就又要多做n次的工作量,所以按照旧的汉诺塔算次数的公式就变成了3^N-1。View Code 1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 __int64 f[36]; 6 fo... 阅读全文
posted @ 2012-09-01 21:37 诺小J 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 题意就不用我说了,接触汉诺塔的人都知道。。说一下解题思路,若现在告诉你要移动m次,找到一个位置2^i-1<=m<2^i+1-1,那么此时就是说已经将n个盘子当中的i个盘子移动到了B盘和C盘上,但是到底是B盘还是C盘就要看具体情况了。。若盘子数为3,那么就是要将前两个盘子移动到B盘,然后将最后一个盘子移动到C盘,此时你发现B盘最底层是不会出现基数盘。。而C盘最底层绝对不会是偶数。。若盘子数为偶数,则情况与上面相反。。。仔细看看代码。。应该可以找回ac最原始的快乐。。View Code 1 #include<iostream> 2 using namespace std; 阅读全文
posted @ 2012-09-01 21:37 诺小J 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 很简单的地推公式问题,给一个n,在这n个位置上面放'E''0''F',这三个字符,问可以拼出多少不同的字符来,排除有‘0''O'相连的情况。当n位取'O'的时候,那么n-1位就只能去'E''F'这两种可能,对于后面n-2之后的位置就没有任何的限定了。。。所以情况是1*2*f[n-2];当n位去'E''F'时,那么对于n-1位置没有任何的限定。。。所以情况是2*f[n-1]综上所述:f[n]=2*(f[n-1]+f[n-2])接下来不说了...果 阅读全文
posted @ 2012-09-01 21:36 诺小J 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 做了这道题目,才让我回味起了acm最初始的快乐,那就是将一个事物的本质想清楚了之后,能很清晰的看清楚。。。稍微说一下解这道题目的解题思路吧。。现在我们有n个盘子,然后我们想把这些盘子从A上面移到C盘上去,那么第n个盘子应该是最后一次的移动,所以第n个盘子只可能出现在A和C盘上,OK。。那么如果现在你知道了第n个盘子在哪里,能不能确定n-1个盘子不能出现在哪个盘子。View Code 1 #include<iostream> 2 using namespace std; 3 int num[3][65],head[3]; 4 int judge(int a,int b,int ... 阅读全文
posted @ 2012-09-01 21:35 诺小J 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 题目意思就是小xc想送给幼儿园女孩子们每人一座城堡,这些城堡都是用立方体的积木搭成,现在为了不出现偏袒那个女生的现象,必须要求送给每个女孩子的城堡的告诉都一样高,那么小xc想出来的办法就是在抽掉其中部分城堡当中的积木,尽量让所有的城堡能达到最大公共高度。那么其实转念一想就很简单,其实就是把其中每个塔的积木全部当做是物品,求这些物品尽量能占得的最大空间,然后求所有城堡的能到达的最大公共高度。View Code 1 #include<iostream> 2 #include<stdio.h> 3 using namespace std; 4 int dp[110][1000 阅读全文
posted @ 2012-09-01 21:33 诺小J 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 说来惭愧,小弟虽早知动态规划这一知识模块的存在,也做了一些题目,但是最基本的背包问题,现在才开始有所了解,一说到动态规划,入门都少不了背包九讲,其中第八讲就是关于依赖背包的讲解,细心的看一下就可以知道其实依赖背包就是把它装化为分组背包的形式去进行求解。废话不多说,这地下的代码调的我要死,不过幸好是出来了,希望能对你有点帮助,可能看着有点乱,因为我想尽量写得短一些,但是整理一下,思路会比较清晰的.View Code 1 #include<iostream> 2 #include<stdio.h> 3 using namespace std; 4 int goods[65] 阅读全文
posted @ 2012-09-01 21:22 诺小J 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 今天实在是有点蛋痛啊。。开始复习一下二分搜索的题目。其实这个知识点,很早之前就应该掌握的了。。到现在才开始,有点小郁闷啊。如果有意想要做二分的朋友,建议先去练练手,做一做2141、2199,都是不错的练手二分题目。此题目的意思,相信大家应该都懂,就是拿炮弹来堆三角形,然后告诉你有多少个这样的炮弹,你要告诉他现在一共有多少堆这样的三角形,然后告诉他最后一颗炮弹在最后一个三角形的行和列。。其实就是生成两个基本的数组,然后用二分来搜索。。这个两个数组就是1、3、6、10....1、4、10、20....相信这个还是不用我多解释了。。View Code 1 #include<iostream&g 阅读全文
posted @ 2012-09-01 21:20 诺小J 阅读(204) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9