- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 HDU 1010-Tempter of the Bone
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1010解题过程:问题:(1):在发现当前节点无法到达时,这点弹出栈,并且把这点的标记重新刷为'.'(2):如何在dfs中既要保证到达又要使时间正好呢?? 在函数中通过这种形式实现:dfs(int si,int sj,int cnt) 就是用cnt来记录当时的时间,并且在if(
2011-05-30 18:45:00 1424
原创 二叉树的创建与遍历(递归创建与遍历)
二叉树的创建与遍历(递归创建与遍历) 代码如下: #include#include#include#define MaxSize 100typedef struct BiNode{ int data; struct BiNode *lchild, *rchild;}BiNode, *BiTree;int TreeCreated = false;int Creat
2011-05-16 09:44:00 1635
原创 POJ1065 Wooden Sticks(贪心+动态规划——单调递增子序列)
POJ1065 Wooden Sticks(贪心+动态规划——单调递增子序列)
2011-05-14 16:27:00 6953 3
原创 阶乘之和(贪心算法)
给你一个非负数整数n,判断n是不是一些数(这些数不允许重复使用,且为正数)的阶乘之和,如9=1!+2!+3!,如果是,则输出Yes,否则输出No; 输入第一行有一个整数0每组测试数据有一个正整数n 输出如果符合条件,输出Yes,否则输出No;
2011-05-13 17:27:00 8147 1
原创 二叉树——(先序序列+中序序列)=后序序列
已知二叉树的先序遍历序列和中序遍历序列,求后序遍历序列。 先递归构造二叉树,然后递归得到后序序列。 思路: 先序序列的第一个结点为要构造二叉树的根结点,在中序序列中查找二叉树的根结点,则中序列根结点左边为根结点的左子树的中序序列,右边为根结点的右子树的中序
2011-05-11 21:21:00 6965 9
原创 深入了解scanf/getchar/gets/cin等函数
scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的。但是有时候却就是因为使用这些函数除了问题,却找不出其中的原因。下面先看一个很简单的程序:程序1: #include int main() {char ch1, ch2;scanf("%c", &ch1); scanf("%c", &ch2);p
2011-05-10 21:37:00 2699 3
原创 多机调度问题
某工厂有n个独立的作业,由m台相同的机器进行加工处理。作业i所需的加工时间为ti,任何作业在被处理时不能中断,也不能进行拆分处理。现厂长请你给他写一个程序:算出n个作业由m台机器加工处理的最短时间。 输入第一行T(1输出所需的最短时间 样例输入22
2011-05-10 09:22:00 6328 3
原创 最长单调递增子序列
方法1:覆盖法#include#includeusing namespace std;char a[10001];char b[10001];int main(){ int n; cin>>n; while(n--) { int len, sum = 1, i, j; cin>>a; len = strlen(a); b[0] = a[0]; for(i = 0; i = 0; --j) { if(b[j] 方法2:新数组记录字
2011-05-07 10:26:00 1518
原创 代码优化的艺术
1.整数求余.我万万没有想到过,求余运算符%也会成为被优化的对象,从前写下循环链表的例子:int a[N];void append(int m){ i = (i+1) % N; a[i] = m;}看哪,多么简洁的代码,多么美妙,你几乎看不出什么破绽.然而,你听他说要把%给优化掉时,你会不会大跌眼睛?至少我是这样."尽管大多数算术运算需要花费大约10纳秒的时间,但%却要接
2011-05-07 08:55:00 1345 1
原创 二分查找
第一步:从伪代码到具体的C语言代码一般版本:int binarysearch(int arr[], int n, int key){ int low = 0, high = n; while(low < high) { int mid = low + (high - low) / 2; if(arr[mid] == key) { cout<<"fad";
2011-05-06 21:51:00 1355
原创 拦截导弹
描述某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统。但是这种导弹拦截系统 有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国导弹来袭。由于该系统还在试用阶段 ,所以只用一套系统,因此有可能不能拦截所有的导弹。
2011-05-06 21:44:00 2537
原创 POJ-1700 过河问题【贪心】
题意:天黑后,N个人要过河,只有一个蜡烛且只有一条船,船每次最多坐2个人。不管怎样,过河者(1个人或者2个人)都必须有蜡烛,所以过河后可能需要人返回送蜡烛,然后再继续过河。问怎样过河时间最短。思路:贪心思想(一般都是先排序)关键步骤:每次从此岸到彼岸移动的两个人要么这两个人中有一个是最快的那个人,要么这两个人到达彼岸后再也不回来。即:要么最快+最慢,要么最慢+次慢。1.对N个人
2011-05-05 21:15:00 4338 2
原创 一个大牛对IT人士的忠告
计算机专业毕业后大致的工作方向是软、硬、网、图 四大类 尤其以软件、网络为现今的首选从岗位上分,又可以分为技术道路、营销道路两大方向if 你选择作技术,then 从现在开始,牢记: 天道酬勤!!! if 你选择软件技术 then 每天都要用大量的时间学习高级语言,绝对不能仅限于学校的安排。优秀的程序员都是大学阶段就已经自学得非常深入了。 if you选择网络技术,那么你就多
2011-05-01 20:34:00 15106 6
原创 学习算法之路
第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码, 因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打 出来. 1.最短路(Floyd、Dijstra,BellmanFord) 2.最小生成树(先写个prim,kruscal要用并查集,不好写) 3.大数(高精度)加减乘除 4.二分查找. (代码可在五行以内)
2011-05-01 20:29:00 4027 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人