摘要: 题目:http://poj.org/problem?id=2886题意:有一群小朋友围成一个环,编号1,2,3…N。每个人手上握着一个非0的数字,首先第K个人出列,然后看他手上的数字,假设为m,则从下一个开始第m个人出列,一直如此。第i个出列的人会得到 i的约数个数 个糖果,求得到最多糖果的人的名字和糖果数。思路:先预处理每个数的约数个数,然后找出得到最多的糖果的是第几个出队的人,假设为res; 建立一个线段树,表示这一段还有几个人, 在更新时计算出出队的这个人的前面和后面的人的个数(L和R),用他手上的数字计算出是剩下人中的第几个人,然后进入线段树搜索出这个人的原始序号。。重复这... 阅读全文
posted @ 2013-06-18 22:04 琳&leen 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 题目:http://poj.org/problem?id=2750题意:n个节点的环,在这个环中找到最大的连续字段和,,。。。思路:建立一个线段树,每个节点有7个值, sum这一段的总和; lmin,lmax从左向右和最小、最大; rmin,rmax从右向左和最小、最大; amin,amax这一段的和最小、最大; 节点的更新为:push函数 1 void push(int w)//节点的更新 2 { 3 tree[w].sum=tree[L].sum+tree[R].sum; 4 tree[w... 阅读全文
posted @ 2013-06-18 21:50 琳&leen 阅读(290) 评论(0) 推荐(0) 编辑