HDU 4007 Dave (基本算法-水题)
题目大意:
告诉你n个点,再告诉你正方形边长,问你这个正方形最多包含多少个点?
解题思路:
先枚举x在范围内的点,O(n)的效率,然后对x在范围的点中,找出y在范围内的点,这个考虑到n不是很大,排序找出最大的即可,否则要用到线段树。...
                            
                            
                                分类:
其他好文   时间:
2014-08-03 23:17:36   
                                阅读次数:
398
                             
                         
                    
                        
                            
                            
                                HDU 4002 Find the maximum(数论-欧拉函数)
题目大意:
给定一个n,问你1~n中,求一个数 x 使得  x/φ(x) 的值最大。
解题思路:
根据欧拉函数的公式,φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)
则:x/φ(x)=p1/(p1-1)*p2/(p2-1)*......*pn/(pn-1)
可以看出项越多x/φ(x)越大,且因子越小x/φ(x)越大,那么只需要2*3*5*7....
考虑到数字很大,所以用JAVA来写...
                            
                            
                                分类:
其他好文   时间:
2014-08-03 23:16:46   
                                阅读次数:
268
                             
                         
                    
                        
                            
                            
                                题目:uva674 - Coin Change(完全背包)
题目大意:给1 5 10 25 50 这5中面值的硬币,然后给出N,问用这些钱组成N的不同方式数目。1 5 和 5 1 表示同一中,顺序不同算相同。
解题思路:完全背包。 状态方程:dp【j】 += dp【 j - v【i】】;
代码:
#include 
#include 
const int N = ...
                            
                            
                                分类:
其他好文   时间:
2014-08-03 20:39:55   
                                阅读次数:
219
                             
                         
                    
                        
                            
                            
                                题目:uva10130 - SuperSale(01背包)
题目大意:超市甩卖。有n件商品,每件商品有对应的价值和重量。有一个家族准备去超市买东西,每个人最多每种甩卖商品只能买一件,可以拿很多不同的商品但是要能拿得动。给出每个人能拿得动的最大重量,问这样的一个家族取采购能够得到的最大的价值。
解题思路:01背包。 dp【j】 = Max (dp【j】, dp【j - W】 + ...
                            
                            
                                分类:
其他好文   时间:
2014-08-03 20:39:05   
                                阅读次数:
179
                             
                         
                    
                        
                            
                            
                                题目:uva10404 - Bachet's Game(博弈,递推)
题目大意:stan和ollie两个小伙伴在玩石头的游戏:给出N个石头,然后给出Mge数。要求每次都是stan先开始,每次拿走m (是M个数中的其中一个)个石头。谁拿走石头后桌上没有剩下石头就赢了。
解题思路:博弈。对于j和石头,stan想要赢的话那么就要分奇数次将j石头拿走。...
                            
                            
                                分类:
其他好文   时间:
2014-08-03 20:38:05   
                                阅读次数:
234
                             
                         
                    
                        
                            
                            
                                题意:给你一棵树,问你树中距离为k的有多少种情况。解题思路:树形dp 维护每个节点(1-K)深度的情况,解题代码: 1 // File Name: 161d.cpp 2 // Author: darkdream 3 // Created Time: 2014年08月03日 星期日 19时20分10秒...
                            
                            
                                分类:
其他好文   时间:
2014-08-03 20:36:35   
                                阅读次数:
201
                             
                         
                    
                        
                            
                            
                                题目大意:
给定一颗满二叉树的后序遍历,小写字母表示叶子节点,以从下到上,从右到左的顺序输出这棵树。
解题思路:
用堆栈构建二叉树,再用bfs遍历树,用堆栈逆序输出。
注意:构树时,若节点用malloc动态分配会超时。...
                            
                            
                                分类:
其他好文   时间:
2014-08-03 18:13:15   
                                阅读次数:
277
                             
                         
                    
                        
                            
                            
                                题目大意:
T组测试数据,n个人,m组询问,2个帮派,D a b 表示 a,b 不在同一帮派 ,A a b表示查询a和b的关系。
解题思路:
并查集。将每个人对应两个节点,分属于两个帮派。1~n表示帮派1中的,n+1~2n表示帮派2中的。若知道a和b不是同一帮的,那么将a和b+n放到一个集合中,b和a+n放到一个集合中。并查集查询a和b的关系时,如果a与b+n在一个集合中,则说明他们不在同一帮;若a和b在同一集合,则在同一帮;否则说明他们关系不确定。连线时交叉连,即保证间隔两人在同一集合。即敌人的敌人是朋友...
                            
                            
                                分类:
其他好文   时间:
2014-08-03 18:12:36   
                                阅读次数:
302
                             
                         
                    
                        
                            
                            
                                题目大意:
有N个立方体和N个格子,1~N编号,一开始i立方体在i号格子上,每个格子刚好1个立方体。现在m组操作,M a b表示将a号立方体所在的格子的全部立方体放在b号立方体所在的格子的全部立方体上面。C x表示询问x号立方体下面的立方体的个数。
解题思路:
在并查集的基础上,只需要知道x到父亲的距离以及父亲到底的距离就知道x到底的距离。sum[i]记录与根的距离,不断维护。...
                            
                            
                                分类:
其他好文   时间:
2014-08-03 18:10:30   
                                阅读次数:
205
                             
                         
                    
                        
                            
                            
                                题目大意
给定DNA序列长度m和一个DNA(每单位DNA有AGCT 4种可能)片段,求所有和所给序列最长公共子串长度为0~len的DNA数量
解题思路
在开题的时候以为是数论+组合数学,思路越想越偏……
后来CLJ给出超简要的题解……
听别人的一种按位压缩的思路,就是枚举到该位置之时LCS所对应的位置,若一一对应则该位为1,否则为0
而当我们要处理新的单位DNA时就有一个变换LCS对应的会改变。
则我们枚举所有可能的匹配位置并枚举下一位,算出下一个状态对应的LCS所在位置,按位压缩。...
                            
                            
                                分类:
其他好文   时间:
2014-08-03 18:10:05   
                                阅读次数:
224