跳过正文

技术归档

这里保留完整的技术写作历史。较早的竞赛题解和课程笔记作为归档内容保存,不参与 首页精选;个人日记、面试记录和敏感内容不会在正式站点发布。

2016

poj 2886 Who Gets the Most Candies? (线段树模拟加强版约瑟夫问题+反素数)

·2 分钟
poj 2886 题目链接 题意:n个人围成一圈,每个人身上由一个数,可正可负。从第k个人开始出圈,如果第k个人身上的数是X,X>0,就左边第x个没有出圈的人出圈,否则右边第-X个人出圈。 第k个人出圈得到的糖果数目为f(k),f(x)表示x的因子个数。现在问谁能拿到最多的糖果,并且拿到了多少糖果。

codeforces #351 D. Jeff and Removing Periods (线段树/树状数组判断位置成等差数列)

·3 分钟
题目链接 题意:有n个数,每次可以删除掉数值相同并且所在位置成等差数列(只删2个数或者只删1个数应该也是可以的),删掉这些数以后可以将剩下的数重新以任意顺序排列,称为一次操作。现在给出m个询问,每个询问一个区间[l,r],问删光区间[l,r]中的数最少需要的操作次数。

codeforces 338 E. Optimize! (线段树维护最小前缀和)

·3 分钟
题目链接 题意:题意是由伪代码给出的。。手算模拟了一下(noip初赛即视感),题意大概是说,给出两个数组a和b,a数组长度为n,b数组长度为len,然后从a中截取连续的len个元素,称为数组s,如果存在一种方法使得s中元素和b中的元素一一对应且每组和都大于等于h,则称这个s是合法的。现在问a中有多少个合法的s。 具体来说,对于样例 5 2 10 5 3 1 8 5 5 7