噜噜噜……这周上了10+days的课啊QAQ
终于能回次家。。
再大致总结总结这周的东西吧。。
虽然好多题都忘得差不多了= =
1.bzoj3745
一段区间[l,r]的贡献是min{a[l..r]}max{a[l..r]}(r-l+1)
给出序列A,求所有区间的贡献和。
分析:自己YY了一个方法(然而考试里并没有写出来QAQ)
首先一段区间[L,R]内部的贡献+对外部的贡献是一个子问题,
那么可以想到分治。
考虑一下当前[L,R],L>R,那么显然不合法,贡献为0.
首先取出Min和Max(最小值的位置和最大值的位置)
假定Min < Max,也就是下图的情况:
(只讨论这个因为Max>Min的做法类似)
那么先考虑内部的贡献:显然是[L,Min]里作为左端点,
[Max,R]里作为右端点,
然后随意推个式子就可以计算了。
接着可以递归考虑[L,Min],[Max,R]和(Min,Max)
那么对外部的贡献呢?很显然,左端点在(Min,Max)里的
和右端点在(Min,Max)里的情况漏下来了。
于是对于三段,我们要考虑[L,R]对它的影响,
也就是跨越Min或者Max的贡献。
同样随意推导一个式子就好了。
当然还有个更简单的做法……百度这题原题题解即可。
2.一个合法序列的定义是,对于任意i,3<=i<=m,
(ai−ai−2)∗(ai−1−ai−2)<0
则这个长度为m的序列合法。
给出一个n,(n<=
105000
),求m<=n的总合法序列个数。
个数会很大,mod 10^9+7即可。
分析:找找规律吧……或者推推。。
用f(i)表示对于i的答案,
则
f(i)=f(i−1)∗2+(i−1)∗(i−2)
这个式子随意推个通项式,就是:
2n+1−n2−n−2
n很大,对于
−n2−n−2
,直接把n取模即可,
而对于
2n+1
,用一下欧拉定理,取模10^9+6即可。
3.给出分子分母的范围[1,n],求所有最简分数中,
第K大的分数是谁(x/y的格式)
分析:其实我不会啊= =
一开始考虑过二分,,却没想到这是正解。
因为感觉有点麻烦?
一直以为是可以暴力找的,然后打个欧拉函数求和,
发现K可以达到12亿+……
于是……看上去就只能二分了
并不会去判定,这是个值得思考的问题ovo。
4……没有4辣!似乎没什么好说的了QAQ
这周……怎么说呢。。状态逐渐有一点点,但是自己感觉不太够。
noip不会考很难的东西,但是说不定会有部分分,
主要就是自己的思维不够好,
但是又没有时间去培养了。
所以最后只能放平心态,尽量做到最好就好了。
像天天爱跑步这种题,就得学会骗分。
还有对拍……千万不能忘记。
真的不能再浪啦!
不想滚粗上文化课去啊QAQ
一周学习简单总结(二)
最新推荐文章于 2020-12-12 20:40:02 发布