OJ题目:click here~~
题目分析:三根柱子 , n个圆盘 。给一个汉诺塔的状态,求将所有盘挪到一个柱子上的最少步数,并给出是最后在哪个柱子上。
从给定状态到目标状态很复杂,但是从目标状态到给定的状态就很容易想了。将一个柱子上i个盘,挪到另一个柱子上,需要pow(2,i) - 1步。 显然,最后在的那个柱子,一定是所给状态下最大盘所在的柱子。接下来考虑第二大的盘,需要移动就移动。……...
分类:
其他好文 时间:
2014-07-22 23:02:14
阅读次数:
279
本题还是有一定难度的。
注意点:
1 要使用逆向思维,不是要计算melt掉多少sculptures, 而是要计算需要剩下多少个sculptures
2 所有情况都需要考虑到,最大间隔melt掉的sculptures是n/3个
3 要判断这样间隔melt掉sculptures之后,剩下的sculptures是否能组成多边形
要很仔细想清楚才能做出来。
It is never too careful to scrutinize a problem!
It is never too careful to desi...
分类:
其他好文 时间:
2014-07-22 23:00:13
阅读次数:
279
题目:hdu 4497 GCD and LCM
题目大意:给出三个数的最大公约数,和最小公倍数,问这三个数的排列组合关系。
解题思路:最小公倍数/最大公约数 == 三个数不同部分的乘积。这样来考虑的话,三个数都要有最大公约数的部分,其余的部分就是由LCM / GCD 里面的因子构成。这里面的因子可能会有 2 2 3 这样的情况, 不同的因子之间是不会相互干扰的,但是相同的会出...
分类:
其他好文 时间:
2014-07-22 22:59:36
阅读次数:
304
题意:给你一个正方形棋盘。每个棋子可以直线攻击,除非隔着石头。现在要求所有棋子都不互相攻击,问最多可以放多少个棋子。这个题可以用搜索来做。每个棋子考虑放与不放两种情况,然后再判断是否能互相攻击来剪枝。最后取可以放置的最大值。这里我转化成求最大独立集来做。首先将每个空地编号,对于每个空地,与该位置可以...
分类:
Web程序 时间:
2014-05-01 22:33:24
阅读次数:
471
Java
synchronized详解第一篇:使用synchronized在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题。在Java中内置了语言级的同步原语--synchronized,这也大大简化了Java中多线程同步的使用。我们首先编写一个非常简单的多线程的程序,...
分类:
编程语言 时间:
2014-05-01 22:27:03
阅读次数:
735
1.一个阶跃输入,后面接戴维南电阻,测量点Vout,之后接其他设计电路,末端开路
理论上在同一时刻Vout也发生阶跃(例如 0到5V) 实际上,在t=0是,输出上升到一半,持续一段时间才会继续上升到5V
这是因为当导线非常长时,需要考虑信号传输时间 脉冲到达末端返回到Vo,Vo得到一个回波,两个2....
分类:
其他好文 时间:
2014-05-01 20:03:58
阅读次数:
298
好了,还是由于工作需要
要登录一个网站并且模拟点击下载某些东西原理就是先对一个地址(地址是用户名和密码输入框所在的form的action对应的页面)进行POST提交用户名和密码(不考虑验证码,当然验证码也可以破解),用一个CookieContainer保持Response的cookie,保证了每次请...
分类:
Web程序 时间:
2014-05-01 19:59:22
阅读次数:
530
1 Yield生成器
Yield是我在其他语言中没有见过的一个属性,算是python的一大特色,用好之后可以使代码更简洁。考虑一个简单的例子,文件的遍历。要遍历一个目录下的所有文件需要递归的操作。如果我们只是单纯的打印文件名,我们可以在递归的过程中完成,每当发现一个非目录就可以打印文件名。代码如下:
class TraverseDirectory(object):
@s...
分类:
编程语言 时间:
2014-04-30 22:48:40
阅读次数:
312
好早就看完这本书了,这真是一本超级好的书。看完之后也是感触良多,一个满是荣誉、财富的人,带着一群世界顶尖程序员花费好几年开发软件,最终失败不重要,因为一路鼓舞了很多人,甚至机缘巧合地拯救了firefox,改变了世界。
一直想写读后感,好处多多。可这读后感啊,一直拖、一直拖了将近一个多月了,到现在还没有写。为了一个月发表四篇博客,就写成这种形式了。
写文章正如写代码一样,不能一开始考虑太多,不然永远开始不了。...
分类:
其他好文 时间:
2014-04-30 22:43:38
阅读次数:
238
1Floyd-Warshall算法
考虑用动态规划的方法,只使用顶点0~k和i,j的情况下,记i到j的最短路径为d[k][i][j]。当k=0时,只考虑i和j,即d[0][i][j]=cost[i][j].然后我们就开始讨论从k到k+1是怎样变化的。
对于顶点0~k的i到j的最短路,如果这条路径不经过第k个顶点,那么d[k][i][j]=d[k-1][i][j]。当经过第k个顶点时,d[k][...
分类:
其他好文 时间:
2014-04-30 22:16:39
阅读次数:
389