- 博客(5)
- 资源 (3)
- 收藏
- 关注
原创 CodeForces 301D(树状数组)
题目链接:codeforces 301D题意分析: 给你n , m两个数,1 ≤ n, m ≤ 2e5,n代表n个不同数字,且这些数字都在区间[ 1 , n ]之间,这就说明1~n每个数出现一次。m代表m次查询,查询格式为两个整数x , y,问你区间[ x , y ]之间有多少对数a , b满足a%b==0。解题思路: 考察点是区间的频繁访问,马上想到线段树和树状数组,线段树太难写了没考虑过,就
2015-04-29 13:41:58 1238
原创 sicily 1019(动态规划)
题目链接:sicily 1019题目分析:恶心的一笔的一道题,不过确实是一道好题。给你一棵树,n个结点,结点间距离为1,每个结点有一个值,第一次走过某个节点获得该结点的值,问用m步遍历树可以获得值的最大值。仔细想想这道题其实这道题并不是特别难,只是之前没有做过类似的题目,所以一时半会儿下不了手。解题思路: 树形DP,什么是树形dp呢?其实不用管那么多的啦,都是动态规划就对了,尤其是这道题
2015-04-18 07:19:58 589
原创 树状数组(三)
题目链接:codeforces 220B题意分析:有n个数,m次询问,一开始给你这n个数ai,每一次询问的时候给你一个区间,求这个区间里面满足“数值为x,出现了x次”的条件的数有几个!(1 ≤ n, m ≤ 100000) 从题述上看,这题的难点应该是区间的频繁访问,于是可以想到线段树或者树状数组解题思路: 即便是线段树或者树状数组这种高端数据结构,有时候也是需要一些辅助算法的,在这道题里面,辅助
2015-04-08 08:25:03 442
原创 sicily 1077(动态规划)
题目链接:这里写链接内容题目分析:一看便知道,这是一个多重背包问题,但是关键不在这里,而在数据量——好大,于是我们需要一种优化——多重背包转0-1背包解题思路: 首先我们考虑第 i 种物品,如果它有num[i]个,那么我们可以把它当成num[i]个物品来看,这样就转成了0-1背包问题。但是,这样没有用啊,时间复杂度并没有得到改善,怎么办呢?我们是在用计算机解决问题,那么就永远离不开二进制,试一下用
2015-04-06 21:45:02 471
原创 sicily 1140(搜索)
题目链接:sicily 1140解题思路:贪心+深搜 相当考编程能力的一道题,一个手贱就卡了好几天,不过的确是一到好题。考察的是对贪心法的运用,还有编程能力——深搜。贪心原则是从最小结点开始搜索(这样最小结点就是根结点),然后对于每一个结点,搜索返回结点数和最小结点,根据题意比较结果,每次贪心搜索之后删除那条边,并标记整个子图,再继续搜索,直到所有的人都分到遗产。代码:(有可能冗余很多,但都是测试
2015-04-03 19:48:43 682
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人