摘要:
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1711题目意思:找出b在a中的起始位置,没有则是-1解题思路:裸的KMP,不多说不会KMP的话可以去看http://www.cppblog.com/oosky/archive/2006/07/06/9486.html说的非常好模板我是拿的大白的代码:#include#includeusing namespace std;const int maxn = 10000+10;const int maxn2 = 1000000+10;int a[maxn2];int b[maxn];int next[ma 阅读全文
摘要:
第一题:Amount of degrees (ural 1057)题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1057题意:[x,y]范围内的数,可以拆分成k个b进制的不同幂的和 的数字有多少。我们可以将x转换成二进制来讨论。二进制转化时,找到第一个非0非1的数,将其及其后面的数都变为1.那么问题就变成了求[0,x]范围内,二进制表示中含有k个1的数字有多少个。求[x,y]区间相减。我们可以给数建立0,1的表示树。在求高度为i的完全二叉树中含有j个1的路径有多少个时,递推式为:f[i,j] = f[i-1,j-1] + f[i-1 阅读全文
摘要:
题目大意:是有M个猪圈,N个顾客,顾客要买猪,神奇的是顾客有一些猪圈的钥匙而主人MIRKO却没有钥匙,多么神奇?顾客可以在打开的猪圈购买任意数量的猪,只要猪圈里有足够数量的猪。而且当顾客打开猪圈后mirko就可以在打开的猪圈之间任意调整猪的数量,(顾客走了之后猪圈要关闭)。问mirko怎样做能使顾客买到最多的猪思路如下:(也是查的,具体原理和原因明天更新)1.取超级源点和超级汇点;2.当猪圈被第一次打开时,在源点与当前顾客之间连接一条边,容量为该猪圈的猪的头数;3.当某个猪圈 不是被第一次打开时,在上一个打开该猪圈的顾客与当前打开该猪圈的顾客之间连接一条边,容量为无穷大;4.在每个顾客与汇点之 阅读全文
摘要:
Problem Description PusherBoy is an online game http://www.hacker.org/push . There is an R * C grid, and there are piles of blocks on some positions. The goal is to clear the blocks by pushing into them. You should choose an empty area as the initial position of the PusherBoy. Then you can cho... 阅读全文
摘要:
其中属性、元素(标签)、文本都属于节点d1d11steeesteeed12d13d2d3 阅读全文
摘要:
装饰者模式:1,装饰者可以在被装饰的行为前面或者后面添加新的行为,甚至于完全替换掉。 2,装饰者会导致很多小对象的产生,不可过度使用。 3,通过组合和委托,可以在运行时候动态添加新的行为。 4,装饰者模式遵循面向扩展开放,面向修改关闭的原则。 5,装饰者模式通过组合方式包装被装饰者,从而扩展被装饰者。 真实世界的装饰者: java.io类。通过层层包装实现增加功能 基本架构: 一个抽象类下有一些基本的单元(具体类),有一些基本的装饰因子。通过将基本单元和装饰因子组合起来,就可以形成复杂的单元。同时复杂的单元又可以再次被装饰,从而功能变得更加强大。所有的基本单元以及经过装饰... 阅读全文
摘要:
android中数据存储 Android 中存储数据的方式有五种:SQLite数据库、文件存储、内容提供者、网络、SharedPreferences(Key----value)五种存储方式。 其中SQLite:是才用动态存储数据类型,会根据存入值自动的判断,SQLite具有以下五种数据类型: 1:NULL,空值类型 2:INTEGER:带符号整数,具体取值取决存入数值范围大小。 3:REAL:浮点数字 4:TEXT:文本类型 5:BLOB:二进制对象此外,其它类型的数据,其也支持,在SQLite中,当主键的类型为整数类型的时候,主键默认是在数据库中当前最后一个值的基础上自增1的。 有的时候我. 阅读全文