FOJ1919 K-way Merging sort(java+dfs+map)

http://acm.fzu.edu.cn/problem.php?pid=1919
大意就是求题目所定义的K合并排序需要交换的次数。
记忆化搜索

1、n<k,要用(n-1)*n/2比较
2、n≥k时,n分成k堆,有n%k堆的f(n/k+1,k)
3、有k-n%k堆的f(n/k,k),
4、k堆合并时,最大比较次数为:每次取最小值都是让k堆比较取最小,用k-1次,总的为(k-1)*(n-k+1)
5、最后剩下k-1堆含一个元素的堆,用(k-1)*(k-2)/2次比较。

java HashMap。
新建HashMap:Map<BigInteger,BigInteger> map=new HashMap<BigInteger,BigInteger>();
插入键值:map.put(n,tmp)
查找键是否存在:map.containsKey(n),返回boolean型。
返回键值:map.get(n)

Java Map接口扩展:
http://www.javaeye.com/topic/421014

posted on 2010-06-04 00:55 CisJiong 阅读(382) 评论(0)  编辑 收藏 引用 所属分类: FOJJAVA


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2010年6月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

统计

常用链接

留言簿(2)

随笔分类(16)

随笔档案(11)

最新随笔

最新评论