摘要: BFS,注意把步数和时间区分对待第一次写BFS代码微乱。#include<stdio.h>#define inf 100000000char map[210][210];int mintime[210][210];int n,m,res;char c;int si,sj,ei,ej;int xx[4]={0,0,1,-1};int yy[4]={1,-1,0,0};int ti,tj,tbu,ttime;int queue[40010][4]; //0:i 1:j 2:bushu 3:time;int inarea(int x,int y){ return x>=0 & 阅读全文
posted @ 2011-06-11 17:39 谁也打不过 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 2757:状态转移方程:MaxLen(1) = 1MaxLen(k) = Max{MaxLen(i):1<=i<=k && a[i]<a[k] &&k!=1} +1这个状态转移方程的意思就是,MaxLen(k)的值,就是在a[k]左边,终点数值小于a[k],且长度最大的那个上升子序列的长度再加1。因为a[k]左边任何终点数小于a[k]的子序列,加上a[k]后就能形成一个更长的子序列。代码:2945:这题一样……改一符号就成。。。 阅读全文
posted @ 2011-02-17 10:42 谁也打不过 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 今天开始学DP。。这道是基础例题(以下内容参考李文新《程序设计导引及在线实践》)首先给出这题的递归思路程序如下:(未用DP,结果是TLE)这段程序用的是一般递归求解,效率极低,计算次数大约为2^N。原因在于重复计算。为了说明重复计算,在程序第9行和第13行加入一句printf("%d,%d\n",r,j);来观察函数调用的过程,改动后的程序如下:输入题目给的样例输入于是输出结果:这样就很明显了,相同点重复调用的次数很多,若统计成三角形图,则为:因此,重复计算次数极大影响效率。既然问题出在重复计算,那么解决的办法就是:一个值一旦算出来就要记住,以免重复计算改良后的程序如下:这种将一个问题分解为子 阅读全文
posted @ 2011-02-16 16:55 谁也打不过 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 额。。。今天讲课的学姐很搞笑。。。讲了什么似乎又没讲什么。。。诶。。。自己看吧。。。选做:poj1390 Blocksspoj 196 Musketeerspoj1191 棋盘分割poj1141 Brackets Sequencepoj2430 Lazy Cows poj3267 The Cow Lexiconzoj1013 Great Equipmentpoj1260 Pearlspoj1015必做:poj1088 poj1952poj1050poj1163 阅读全文
posted @ 2011-02-16 16:03 谁也打不过 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 本文来自CSDN博客,出处:http://blog.csdn.net/kongming_acm/archive/2010/07/13/5731584.aspx随机博弈指的是这样的一个博弈游戏,目前有任意堆石子,每堆石子个数也是任意的,双方轮流从中取出石子,规则如下:1)每一步应取走至少一枚石子;每一步只能从某一堆中取走部分或全部石子;2)如果谁取到最后一枚石子就胜。也就是尼姆博弈(Nimm Game)。必败局面:也叫奇异局势。无论做出何出操作,最终结果都是输的局面。必败局面经过2次操作后,可以达到另一个必败局面。必胜局面:经过1次操作后可以达到必败局面。即当前局面不是必败局面就是必胜局面,而必 阅读全文
posted @ 2011-02-15 15:27 谁也打不过 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 欧几里得算法:欧几里得算法又称辗转相除法,用于计算两个整数a,b的最大公约数。原理:gcd(a,b) = gcd(b,a mod b);实现代码:扩展欧几里得算法:扩展欧几里得算法是用来在已知a,b的情况下求解一组p,q 使得 p*a + q*b = gcd(a,b)原理:因为gcd(a,b) = gcd(b, a%b)所以 p*a + q*b = gcd(a,b) = gcd(b, a%b) = p*b + q*(a%b) = p*b + q*(a - (int)a/b*b) = q*a + (p - (int)a/b)*b (a%b = a - (int)a/b*b)这样它就把a,b的线性 阅读全文
posted @ 2011-02-15 09:44 谁也打不过 阅读(501) 评论(1) 推荐(0) 编辑
摘要: 这貌似也是道数学题。。找到方法就很简单。。求尾数0的个数实际上是求阶乘中因子‘5’的个数,复杂度为o(n^2)直接查找计数可能超时,因此有如下算法: 阅读全文
posted @ 2011-02-15 09:32 谁也打不过 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 这是一道数学题。。思路大概是这样:m=n^n,两遍分别对10取对数得 log10(m)=n*log10(n),得m=10^(n*log10(n)),由于10的任何整数次幂首位一定为1,所以m的首位只和n*log10(n)的小数部分有关以诚兄的代码:数学推导步骤如下: 阅读全文
posted @ 2011-02-15 08:07 谁也打不过 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 饿。。。自己用的是一个求周期从而增加时间效率的算法。。。如下:另外一个找规律的代码(以诚兄写的。。简洁多了。。)其实这题的主流解法是快速幂:根据HDU1061进行的改动: 阅读全文
posted @ 2011-02-14 21:04 谁也打不过 阅读(286) 评论(0) 推荐(0) 编辑
摘要: I've been working for the past 15 months on repairing my rusty math skills, ever since I read a biography of Johnny von Neumann. I've read a huge stack of math books, and I have an even bigger stack of unread math books. And it's starting to come together.自从我读了Johnny von Neumann的传记,我已经为弥 阅读全文
posted @ 2011-02-05 00:24 谁也打不过 阅读(269) 评论(0) 推荐(0) 编辑