- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 hdu 1588 Gauss Fibonacci
http://acm.hdu.edu.cn/showproblem.php?pid=1588题意:g(i)=k*i+b,sum(f(g(i)) for 0思路:根据Fibonacci矩阵的求法,f(i)=mat^i 令mat={1,1,1,0} ,f(g(i))=mat^g(i)=mat^(ki+b) ,sum(f(g(i))=mat^b+mat^(k+b)+...+mat^(ki+b)
2012-03-31 23:31:33 443
原创 POJ 1655 Balancing Act 树形dp
http://poj.org/problem?id=1655题意:一颗有N个结点的树, 每个结点的平衡度定义为:从树中去掉该结点之后形成的森林中结点最多的树的结点数 ,求平衡度最小的结点。如果有两个结点的平衡度相同,则输出编号较小的那个。思路: 树形dp。 确定树的一个根结点,对于某个结点,首先用dp[i]表示以该结点为根节点的子树中结点的个数,在该结点的所有孩子的子树中的结点的个数由叶-
2012-03-27 21:38:12 500
原创 POJ 1155 TELE 树形dp
http://poj.org/problem?id=1155题意:某电台要广播一场比赛,该电台网络是由N个网点组成的一棵树,其中M个点为客户端,其余点为转发站。客户端i愿支付的钱为pay[i],每一条边需要的花费固定,问电台在保证不亏损的情况下,最多能使多少个客户端接收到信息?广播台所在的节点编号为1。思路:树形dp。 用dp[root][d] 表示以root为根的子树中,保留d个用户的最
2012-03-27 20:40:56 629
原创 Ural 1018 Binary Apple Tree 树形dp
http://acm.timus.ru/problem.aspx?space=1&num=1018题意:有一棵苹果树,苹果树的是一棵二叉树,共N个节点,树节点编号为1~N,编号为1的节点为树根,边可理解为树的分枝,每个分支都长着若干个苹果,现在要要求减去若干个分支,保留M个分支,要求这M个分支的苹果数量最多。思路: 树形dp。 状态转移方程为:dp[root][d] :表示以root为子树
2012-03-27 17:10:17 630
原创 SPOJ 694 Distinct Substrings
http://www.spoj.pl/problems/DISUBSTR/题意:给定一个字符串,len思路: 后缀数组。 每个子串一定是某后缀前缀,于是原问题就可以转换为求所有后缀中不同前缀的个数,后缀的排列顺序为字典序排序suffix(sa[1]) < suffix(sa[2] ) < suffix(sa[3]) .... ,由后缀的排列顺序我们可以得出,由后缀suffix(sa
2012-03-24 10:16:25 472
原创 POJ 3261 Milk Patterns
http://poj.org/problem?id=3261题意:N头牛,每头牛有一个编号,求可重叠的至少出现K次的最大子串。思路: 后缀数组+二分 。 二分答案,然后将后缀分成若干组。不同的是,这里要判断的是有没有一个组的后缀个数不小于k。如果有,那么存在k 个相同的子串满足条件,否则不存在。这个做法的时间复杂度为O(nlogn)。代码: #include#include#i
2012-03-24 08:56:43 396
原创 POJ 2774 Long Long Message
http://poj.org/problem?id=2774题意:给定两个字符串 A 和 B ,求最长公共子串。思路:后缀数组。(摘自罗穗骞的国家集训队论文)字符串的任何一个子串都是这个字符串的某个后缀的前缀。求 A 和 B 的最长公共子串等价于求 A 的后缀和 B 的后缀的最长公共前缀的最大值。如果枚举A和 B 的所有的后缀,那么这样做显然效率低下。由于要计算 A 的后缀和 B
2012-03-23 15:15:37 373
原创 POJ 2828 Buy Tickets
http://poj.org/problem?id=2828题意:有n个人陆续来到一个队列里排队(插队),第i个来的人插入到pos[i]位置中,问最后的队列情况。思路:线段树,和之前的一道题目的思想是一样的,从最后一个往前推,对于最后一个人(pos,val),在1-N中,他的位置应该是pos+1位,依次类推就可以将整个队列都推出来了。维护一颗线段树,线段树的每个结点存放一个nu
2012-03-22 22:31:12 379
原创 POJ 1990 MooFest
http://poj.org/problem?id=1990题意:FJ有n头牛,排列成一条直线(不会在同一个点),给出每头牛在直线上的坐标x。另外,每头牛还有一个自己的声调v,如果两头牛(i和j)之间想要沟通的话,它们必须用同个音调max(v[i],v[j]),沟通起来消耗的能量为:max(v[i],v[j]) * 它们之间的距离。问要使所有的牛之间都能沟通(两两之间),总共需要消耗多
2012-03-22 21:56:47 484
原创 POJ 2182 Lost Cows
http://poj.org/problem?id=2182题目大意是,有N头牛,站成一排,但是他们并不是按照1--N的顺序站的,而是打乱了顺序地排成一排。现在已知牛的头数N和每头牛前面比它编号大的牛的头数,要你确定每头牛编号。思路:一开始,由于给了N头牛前面有多少头牛比它的编号大,并且牛的编号是1--N, 我们可以从最后一头牛前面有多少头牛的编号比它打而确定出最后一头牛的编号,接
2012-03-22 18:30:25 406
原创 POJ 2155 Matrix
http://poj.org/problem?id=2155题意: 给定一个n*n的0-1矩阵,执行一些如下的两种操作:C a,b,c,d :将矩阵中(a,b)到(c,d)的格子中的0-1进行“非”操作Q a b :询问当前(a,b)位置的元素的值思路: 二维树状数组本题给出的要求正好与树状数组的操作"相反",但是还是可以转换成树状数组的操作。本题的要求是对二维数组的某一个矩形
2012-03-22 18:27:08 412
原创 POJ 2185 Milking Grid
http://poj.org/problem?id=2185题意:给你一个字符矩阵,求出它的最小覆盖子矩阵,即使得这个子矩阵的无限复制扩张之后的矩阵,能包含原来的矩阵。 即二维的最小覆盖子串。思路:KMP很好的一道题。首先易证:最小覆盖子矩阵一定靠左上角。那么,我们考虑求出每一行的最小重复串长度,所有行的最小重复串的长度的lcm就是最小重复子矩阵的宽。然后我们对列也做相同的操作
2012-03-21 22:04:42 643
原创 POJ 2182 Lost Cows
http://poj.org/problem?id=2182题目大意是,有N头牛,站成一排,但是他们并不是按照1--N的顺序站的,而是打乱了顺序地排成一排。现在已知牛的头数N和每头牛前面比它编号大的牛的头数,要你确定每头牛编号。思路:一开始,由于给了N头牛前面有多少头牛比它的编号大,并且牛的编号是1--N, 我们可以从最后一头牛前面有多少头牛的编号比它打而确定出最后一头牛的编号,接着在1-
2012-03-19 21:00:12 419
转载 表达式求值 ZOJ_3585_2
参照龙书《编译原理》的前三章的方式写的代码,先写出文法:{}为可选内容, || 为或者选项。exp = term {^ term} // 异或term = fact {| fact} // 或fact = var {& var} // 与var = 变量 || ! 变量 || (exp) 根据文法规则写出各个函数,设置好全局字符串指针
2012-03-14 22:53:01 550
原创 ZOJ_3585 Equivalent Expression 表达式求值
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3585题意:给两个真值表达式,判断两者是否等价,两个表达式等价是指:对于表达式内的所有变量的任意指定,两个表达式的真值都一样。已知表达式内的变量的个数最多为15个。思路:因为任一表达式内的变量的个数最多为15个,枚举所有的情况一共有2^15=32768种情况,这里我们
2012-03-14 20:53:46 760
原创 POJ 1686 Lazy Math Instructor
http://poj.org/problem?id=1686表达式求值的问题,给定两个表达式,问两者是否算术相等。用两个栈,一个存放操作符,一个存放数,进行表达式的求值,并判断两者是否相等。第一个表达式求值的题目,^ ^..#include#include#includeint T ,len1,len2 , plus ;char s1[85],s2[85] ;int optr[8
2012-03-14 19:27:33 942
原创 ZOJ 1249 Pushing Boxes
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1249 题目的大致意思是,给定一个R*C 的maze,其中分别有一个人,一个箱子和一个箱子要推到的目标点,其他的格子分成可走和不可走两种,现在要求在给定的情形之下求出人推箱子到目标点最小需要的步数。 思路:BFS+优先队列。将人和箱子的位置作为一个状态,这里可
2012-03-09 17:35:05 728
转载 Windows7部署Android开发环境傻瓜式教程(Eclipse+ADT) (转)
以后工作中要用到android开发,所以想搭建好开发环境,笔记本装的是win7,在网上找了找相关资料,发现博客园有一片介绍搭建Android开发环境的文章,所以转载过来方便以后查看。转载地址:http://www.cnblogs.com/vengen/archive/2010/04/01/AndroidSetup.html 准备文件:1 下载Android SDK
2012-03-03 00:07:21 837
原创 GTK+编程应用--日历
/×ID:chrisdate:3月2日 2012年×/#include#includegint status ;GtkWidget* window ;GtkWidget* calendar ;GtkWidget *vbox ,*hbox,*hbox1;GtkWidget *frame ;GtkWidget *separator ;GtkWidget *vbox1
2012-03-02 13:59:44 900
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人