![](https://img-blog.csdnimg.cn/6da488a628e044f8b55daf1407f583a8.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
csp认证
文章平均质量分 73
csp刷题
Alkali!
本科:NUAACCST16191
硕士:SEUCSE220
展开
-
csp202203-2【出行计划】题解 差分+前缀和 30行代码解决
思路 已知在ttt时刻完成核酸检测,等待核算报告需要kkk天,某场所核算报告有效期为ccc天,则在[t+k,t+k+c)[t+k,t+k+c)[t+k,t+k+c)天之间去这个场所是可以的。 题目一开始给了等待核酸检测出报告的时间kkk天,接下来给了很多对(ti,ci)(t_{i},c_{i})(ti,ci)(ttt表示某人去这个地方的时间,ccc表示这个地方承认的核酸检测天数) 再给出许多询问,每次询问是给定一个正数q(q>0)q(q>0)q(q>0),qqq的意义是做核酸的时间。原创 2022-03-20 18:43:18 · 3839 阅读 · 5 评论 -
202012-2期末预测之最佳阈值
思路 排序 + 前缀和 用pairpairpair型数组aaa记录每个输入的yyy和resultresultresult 对数组aaa按yyy进行升序排序 处理出前缀和数组s[][]s[ ][ ]s[][] s[0][i]s[0][i]s[0][i],s[1][i]s[1][i]s[1][i]分别表示前iii个数中000和111的个数 那么最后对于每个a[i].firsta[i].firsta[i].first,也即对于每个yyy 预测正确的数量===s[0][i−1]+s[1][m]−s[1][i−1原创 2022-03-19 12:21:42 · 329 阅读 · 0 评论 -
csp202109-1:数组推导 题解
题目 思路 题目要求求出sum的最大值和最小值,其实是求序列A的每一位的最大值、最小值 sum最大值 想让序列A取到最大,其实是直接让Ai=Bi,也即每个Bi都是因为当前第i位的A是前面所有数的最大值才取到这个值的。 sum最小值 这种情况出现在Bi出现相邻位置相等的情况,这时反映在序列A中的情况就是相邻相等的这几位,只需要一位取到这个B的值就可以了,其他位都可以取比它小的值,为了达到最小,我们这里取0 代码 #include<iostream> using namespace原创 2022-03-02 20:40:04 · 497 阅读 · 0 评论 -
csp202112-2:序列查询新解 题解
题目 样例 思路 观察f(x)f(x)f(x)和g(x)g(x)g(x)的序列,其实是有规律的: f(x)f(x)f(x)在每个A[i]A[i]A[i]处+1+1+1,在[A[i],A[i+1])[A[i],A[i+1])[A[i],A[i+1])中值相等 g(x)g(x)g(x)每rrr个数+1+ 1+1 因为由g(x)g(x)g(x)定义可知: g(x)g(x)g(x)中x每经过r个数会+1 所以整体思路可以先对序列A进行遍历,每次遍历一个相等的区间,在这个相等的区间里,fff函数值是原创 2022-02-24 20:26:13 · 1927 阅读 · 0 评论 -
csp202112-1:序列查询 题解
题目 思路 本题提供了一个数组A,里面有正序增长的数n+1个,A[0]默认为0,在输入中不给出。 定义了函数f(x)f(x)f(x)为序列A中小于等于x的整数里最大的数的下标。 我们很容易发现如下规律: 假定xxx是000到N−1N-1N−1范围内的任意整数,iii是数组下标(0≤i≤n0≤i≤n0≤i≤n) 当0≤x<A[n]0≤x<A[n]0≤x<A[n]时,f(x)=i−1(1≤i≤n)f(x)=i-1(1≤i≤n)f(x)=i−1(1≤i≤n)当且仅当A[i−1]≤x<A[i]A[i-原创 2022-02-22 17:56:15 · 1235 阅读 · 0 评论