自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tanhaiyuan

博客园博客 http://www.cnblogs.com/controlfate/

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

原创 hdu 1331||1579 Function Run Fun(记忆化)

我开始写了个循环求解的,但是错的, 然后我又改了下, 还是不对; 但是我感觉这个和背包问题差别不大, 应该能用循环球出的吧……如果哪位同学知道,请指点一下……记忆化递归代码:#includeusing namespace std;int w[21][21][21];int DP(int i, int j, int k){ if( i<=0 || j<=0 || k<=0)

2011-10-30 14:02:18 1021 2

转载 【数论】法 雷 数 列

实数包含有理数和无理数,任何有理数都可以表示为p/q(p,q是整数,q!=0)的形式,如果指定一个分数的分母不超过某个值,对于一般的有理数或者无理数,是不可以用一个分数来准确地表示的。我们这里主要讨论,如何找出一对分数p1/q1和p2/q2,使得q1 和q2 小于给定的值n,而p1/q1和p2/q2尽可能接近一个给定的实数.。为了便于说明,我们用C++语言的格式给出问题的定义:函数接口void

2011-10-26 22:37:55 1965 1

原创 五:二叉树输出

1:以括号表示法输出输出://输出括号表示 void DispBTNode( BTNode *p){ if( p!=NULL ) { coutdata; if( p->left!=NULL || p->right!=NULL)//至少存在一个儿子时,输出 { cout<<"("; DispBTNode( p->left ); //当有这

2011-10-26 00:33:09 998

原创 四:二叉树遍历

1:递归://先序 void PreOrder(BTNode *p){ if( p != NULL)//注意不要忽略掉 { coutdata; PreOrder(p->left); PreOrder(p->right); }}//中序 void InOrder(BTNode *p){ if( p!=NULL )//注意不要忽略掉 { InOrder(p-

2011-10-25 23:46:25 847

原创 hdu 1181变形课(DFS)

这是一道比较简单的搜索题, 一次AC……#include#include #includeusing namespace std;struct Word//定义这个, 避免每次都求单词长度 { char str[20]; int len;}word[10000];bool visited[10000];int num;bool cmp(Word a, Word b){

2011-10-25 21:08:31 731

原创 三:求深度(高度, 层数)

1:求二叉树的深度思路:递归分别求出左右子树的深度, 取其中的最大值//从0开始,得到树的深度 int BTreeHeight( BTNode *p){ if( p==NULL ) return 0; //获得p的左子树,右子树的深度(都不含p),然后分别加1,表示从p开始,到左子树末端的深度,和到右子树末端的深度;二者取最大值 return MAX(BTreeHeight(p

2011-10-23 23:13:28 1418 1

原创 一:构造链式二叉树(二)

一:由序列构造首先要知道:(1):任何n个不同节点的二叉树, 都可由它的中序序列和先序序列   或  中序序列和后序序列唯一的确定(2):在由两种序列确定定一个二叉树时,先序和后序序列的作用是确定一颗二叉树的根节点, 而中序序列的作用是确定左右子树的中序序列(1) 的证明用数学归纳法即可   而( 2 )的结论是显而易见的实现:1:由中序和先序序列构造BTNode

2011-10-23 23:06:13 753

原创 一:构造链式二叉树(—)

1:由二叉树的括号表示法构造链式二叉树//由二叉树的括号表示, 创建二叉树,并返回根节点的指针 void CreateBTree( BTNode *&root, char str[])//参数:传入根节点的指针,二叉树的括号表示 { //flag标记其后处理的节点; 若是父节点(此刻为栈顶元素)的左儿子(flag=1), 若是是右儿子(flag=2) int j=0, flag=0,

2011-10-23 21:12:13 1150

原创 二叉树的总结

一:构造链式二叉树1:由二叉树的括号表示法构造链式二叉树2:由二叉树顺序存储构造链式二叉树3:知道二叉树的中序序列和前序序列, 或中序序列和后序序列,构造链式二叉树4:将孩子链存储的多叉树转化为二叉树二:查找二叉树中某节点三:求深度(高度, 层数)1:求整棵树的深度2:求某个值为x的节点的层数四:遍历1:前序,中序, 后序遍历(递归,

2011-10-23 20:34:03 1212

原创 建树和叶子节点的个数 1398

描述给出一个二叉树的广义表表示方法,请用二叉链表的方式建立一棵二叉树。并输出树中叶子节点的数目。不考虑空树情况!#include#includeusing namespace std;#define MAX(a,b) a>b?a:b;typedef struct Node{ char data; Node *left; Node *right;}*

2011-10-20 13:16:09 1177 1

原创 二叉树的基本操作

其实二叉树的基本操作很多, 但基本上都是基于二叉树的遍历的, 大同小异, 因此我我在这选几种写一下, 至于二叉树的遍历, 我在下一篇专门写;而且在树这一章节对递归要求较高,要对2,3,4多思考一下……1:创建二叉树   2:查找节点   3:求树的深度   4;用括号表示法输出二叉树       #includeusing namespace std;#define MAX(a,

2011-10-18 23:33:24 1342 1

原创 二叉树的创建

最近在学树,总结一下……一:由二叉树的括号表示来构建二叉树1:非递归形式:#includeusing namespace std;typedef struct Node{ char data; Node *left; Node *right;}BTNode;Node *stack[100];//由二叉树的括号表示, 创建二叉树,并返回根节点的指针 void Cre

2011-10-18 21:19:09 725

原创 hdu 1251统计难题(trie)

以前写过trie的, 但是这次再写, 发现了很多问题, 看来, 我对trie掌握得还不够啊……#include#include#include#includeusing namespace std;struct Node{ Node *next[26];

2011-10-12 19:16:27 531

转载 ACM推荐blog

Twilightgod CUST http://blog.csdn.net/twilightgodAekdycoin FZU http://hi.baidu.com/aekdycoinForeverlin HNU http://hi.baidu.com/forverlin

2011-10-10 20:03:49 695

转载 Long Long、__int64使用总结

转载自 tianxingjianhd最终编辑 tianxingjianhd前言:  在16位环境下,int/unsigned int 占16位,long/unsigned long占32位  在32位环境下,int占32位,unsigned

2011-10-10 18:56:48 1127

转载 算法书籍推荐(zz)

The Art of Computer Programming作者:Donald E. Knuth出版社:中文版由国防大学出版社发行,中文译本书名为《计算机程序设计艺术》作者主页: http://www-cs-faculty.stanford.ed

2011-10-09 22:27:42 737

原创 hdu 2642stars(二维树状数组)

基础题……写完代码,却发现样例都过不了,找了N久的错, 也没发现哪出问题了, 再仔细一看题,发现查询时是先输入两个横坐标,再输入两个纵坐标,而不是先输入一个点的坐标,再输入一个点的坐标……无语……#include#include#define MAX 1001int

2011-10-08 22:58:26 594

原创 hdu 1166敌兵布阵

最简单的树状数组,更新点,查询区间……#include#include#include using namespace std;int n, c[50001];int Lowbit(int i){ return i&(-i);}void Update(

2011-10-08 00:36:16 809

原创 hdu 1556Color the ball

这个题是更新区间,查询点;是简单的线段树和树状数组的应用;不过线段树再简单应用上, 不用做任何变化及可以直接套用, 而树状数组却不同, 它在处理1:更新点,查询区间 2:更新区间,查询点 。这两种基本类型时,需要变化一下;#include#includeint n,

2011-10-08 00:34:24 717

原创 树状数组

2011-10-06 18:31:09 465

转载 论ACM与泡妞

abstract :本文从各个方面讨论了泡妞与做题之间的相似之处与不同点,尽量的站在一个公平的角度阐述这一问题,所得的研究成果填补了国内外的理论空白。 -泡了一个好妞就好像做了一道难题一样快感都是相同的。 -首先这两项活动都需要耗费大量的精力,一般都是20岁左右的

2011-10-06 14:03:32 1195

原创 hdu 1016Prime Ring Problem

我刚开始想到的, 1:当n为奇数的时候, 肯定没有符合条件的:2:符合条件的排列相邻的数字的奇偶性肯定不同;我开始枚举产生排列来判断是否符合条件, 但是果断TL了, 然后参考别人的代码才过的,几乎和别人的代码差不多……我还有一种想法, 可以分别产生奇数的排列, 偶数的排列, 然后

2011-10-05 22:08:43 1207

原创 poj 1321

一道简单的题, WR了好多次,……这是我的第一个版本:#include#includeusing namespace std;char map[9][9];int row[9], num;//row[i]=j;表示第j列第i行已放过棋子bool check(in

2011-10-05 15:21:05 882

转载 [分享] 【强烈推荐】要速度更要方便!75款实用Chrome插件推荐

《卡饭月刊》第28期发布(2011.07)本帖最后由 lmylyl 于 2011-9-4 22:24 编辑时下很多人都用上了Google Chrome浏览器,这款目前世界上最快的浏览器既简洁又高效,用来上网冲浪还真是不错。不过好马也得配

2011-10-05 00:50:42 6319 2

原创 hdu 1242Rescue(记忆化搜索)

又贡献了n个TL……先用纯DFS写的,TL,然后无论怎嘛剪枝都是TL……然后加了一个record来记录已走过的地方的最短时间, 通过record来剪枝……终于AC了……这个也可以用BFS+优先级队列来做的!#include#include#include#inclu

2011-10-03 13:42:06 725

原创 hdu 1239Calling Extraterrestrial Intelligence Again

题比较简单,容易写, 但是测试数据多, 容易TL……#include#include#includeusing namespace std;int pr[100001]={0};int prime[50000];int main(){ int m, a,

2011-10-02 23:14:41 543

原创 hdu 2151Worm(dp)

很久没做过DP了, 这题的状态转移方程是dp[i][j]=dp[i-1][j+1]+dp[i-1][j-1], 当然,要注意边界的处理和初始化。开始时我觉得可以将其状态由二维压缩到一维, 写出来了结果发现多了很多, 再仔细想了一下,发现这个没法压缩到一维, 因为j 在j-1和j+

2011-10-02 02:20:28 680

原创 hdu 1028Ignatius and the Princess III(整数划分)

很水的一道题,DP可以, 母函数也可以……母函数代码:#include#includeusing namespace std;int main(){ int n, num1[124], num2[124];//对小于100的整数进行划分 int i

2011-10-02 02:20:18 525

原创 hdoj 1003Max Sum

简单的DP, 求最大连续子段和, 只不过需要加一个记录路径的……#include using namespace std;struct Node{ int sum; int s; int e;}dp[100001];int main( ){ int t,

2011-10-01 22:19:15 473

空空如也

空空如也

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

TA关注的人

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