- 博客(13)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 Uva 572 - Oil Deposits//深搜,图
题目很简单,数据不大,直接深搜。#include#include#define MAXN 105int map[MAXN][MAXN];int n,m;void dfs(int i,int j){ if(!map[i][j]) return; map[i][j]=0; dfs(i+1,j); dfs(i-1,j); dfs(i-1,j
2013-01-25 18:31:37 427
原创 Uva 11234 - Expressions//数据结构,二叉树
刚开始写题是有点想当然,自己感觉很简单。可是在写代码的时候才发现自己的建树方法很难实现。所以就在想有没有更简单的建树方法。联想到之前刷的括号匹配的题,灵感就来了。orz,这道题关键就在如何建树。下面是代码: #include#include#include#include#include#define MAXN 10005using namespace std;str
2013-01-25 18:28:15 546
原创 数据结构 树
这里先研究的是二叉树。一、二叉树的三个基本性质1、若二叉树结点的层次从 1 开始, 则在二叉树的第 i 层最多有2的( i-1)次方 个结点。( i≥1)2、深度为 k 的二叉树最少有 k 个结点,最多有2的( k-1)次方个结点。( k≥1 )3、对任何一棵二叉树,如果其叶结点有 n0 个, 度为 2 的非叶结点有 n2 个, 则有n0=n2+1。 下面简单的证明
2013-01-25 18:23:52 427
原创 c++ 学习结构体与类
据说在c++中,为了兼容c语言才保留的结构体这种数据类型的。 既然c++中的类就是c语言中的结构体加函数。这样貌似在c++中结构体也可以定义函数。 发这篇blog关键是复习一下c++中的类,今天在在关于类的成员属性上跪了半天。(private,public什么的完全忘记了) 笔记:在c++的类中,private的成员只能由public的函数访问,不能直接从该类型的变量访问
2013-01-19 21:19:29 396
原创 Uva 11111 - Generalized Matrioshkas//栈
这道题题目很长,想要弄清题意就得花点时间。当我第一次写完代码是发现,自己的代码连最后一个样例都过不了。囧!题目还有一个规定,如果n包含了j和k,那么j+k必须要小于n。如果没有这个规定的话,只需要开一个数组,分别从前和从后向中间匹配就ok了。 仔细观察,就会发现这道题就是括号匹配的加强版。 下面是代码: #include#include#include#include#d
2013-01-19 19:19:04 500
原创 Poj 1423 Big Number//数学,阶乘
直接上代码,更多请戳这里#include#include#define Pi 3.141582626535#define e 2.718281828459using namespace std;int main(){ int n,m; cin>>n; while(n--) { cin>>m; int ans;
2013-01-18 22:49:56 430
原创 数学学习之阶乘
今天看了一会《离散数学及其应用》的第一章后面的上机题的第一道题。求n!的位数在100到100之间的最大的n。 要解决这个问题,首先就来研究一下阶乘的性质。 查一下wiki百科,就会发现关于阶乘有个斯特林公式: (有兴趣戳这里),那么我们就可以很快的求出n的阶乘。但是我们不需要求出n的阶乘,只需要知道它有多少位。所以现在就要知道怎样求一个数有多少位了。答案就
2013-01-18 22:45:32 2913 2
原创 Uva 442 - Matrix Chain Multiplication//栈
分析:刚写这道题的时候,就当作简单的栈的题写,但是有一点问题,就是矩阵相乘顺序一定。所以代码就写的老长。调试的时候也不断出错。总之,我太急了,还没在草稿纸上大号草稿就开始写代码。这样子,效率太低了。还有自己写代码的能力太弱了。 #include#include#define MAXN 28struct martix{ int row; int col;} Mart
2013-01-17 19:47:35 597
原创 Uva 673 - Parentheses Balance//栈
这道题去年暑假写过的,但是现在却在这里悲催了很长时间,可见自己码代码的水平有好“高”!对自己无语了啊。这道题括号匹配不成功有三种可能1、多括号2、少括号3、不匹配。尼玛,这样一想首先就要判断字符串长度是不是偶数,不是偶数绝对不匹配。下面的代码没有想到是不是偶数(囧!):#include#include#includeusing namespace std;i
2013-01-16 22:17:28 1448
原创 Uva 10152 - ShellSort//排序,线性表
题目大意:从king Yertle邪恶王座下,趴出一个乌龟,(不过样例一king yertle的duke骑在了他的头上),这只乌龟只能怕到最上面去。就这样,问趴出的最少的乌龟。 分析:最开始我的想法很简单,但是是n的平方的复杂度,看了一下别人的想法,发现线性时间内搞定,但是为什么我的时间相对于别人来说还是很长呢? 下面是代码,想法很简单,但是不好想到,一般的做法就是用qs
2013-01-16 17:29:37 542
原创 Uva 133 - The Dole Queue//模拟,链表
这道题其实不难,就是输出要求高一点的,结果我却画蛇添足,导致代码很长,很杂乱,导致wa和pe。 题目分析:一看题就知道要开个数组,模拟一个ring,那就直接用数组模拟一个循环链表+删除。就ok了。理解错了output的有求导致wa了3次,pe2次。这里有个小小的陷阱:如果要删除的这个点刚好是另一个人有重新开始计数的点的话,那么就向前或者后移一位。下面是代码:#in
2013-01-16 17:28:38 685
原创 Uva 101 - The Blocks Problem//简单模拟
分析:这道题蛮有意思的,虽然说很简单,但是可以当做练手吧,锻炼自己码代码的能力。注意:当a和b相等的时候,判定这个输入不合法,不做任何的操作。#include#include#define MAXN 26int blocks[MAXN][MAXN];int n,order[MAXN],position[MAXN];void init(){ memset(bloc
2013-01-16 17:27:00 358
原创 Uva 101 - The Blocks Problem//简单模拟
这是我刷的薄白书的第二道课后习题。 一如既往的,刚开始看题很吃力,但是仔细的推敲也能知道个大致的意思。 move a onto b :就是将a放在b上,但是要在之前将a和b上的箱子全部放回原处。 move a over b :就是将a放在b上,但是要在之前将a上的箱子全部放回原处。 pile a onto b:就是将a及其之上的箱子放在包含b上,但是要在之前将b上的箱子放回
2013-01-10 16:10:33 573
Poj 1011 TLE...求大神指教0.0
2013-07-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人