前言
好久没考过试了,居然考这么挫qwq。。。
T1 water
题目描述
给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b。
中位数是指把所有元素从小到大排列后,位于中间的数。(来源:[CQOI2009]中位数)
【数据规模】
对于30%的数据中,满足n≤100;
对于60%的数据中,满足n≤1000;
对于100%的数据中,满足n≤100000,1≤b≤n。
考试分析
emmm....不是说好第一题是水题吗?我觉得再怎么模拟也只有O(n^2)啊!
肯定TM又是一道找规律题..............推了1h居然没退出来,wc,果断60分滚粗
正解
(ps:思路来自lsq大佬)
首先开一个sum[]数组、一个变量q,线性扫一遍,
如果a[i]>b,则++q;如果a[i]<b,则--q;如果找到了b,就用pos将其位置记录下来扫描二维码关注公众号,回复: 5636447 查看本文章接着令sum[i]=q(sum[i]表示从i+1开始匹配还差sum[i]个比b小的数 )
Code
T2 str
T3 tree