今天考得不怎么样啊……
感觉失误比较大……
T1
题意:
给定
n
个数和
如此简单的一道题,我竟然没有想出特别好的算法
一看基本就是
O(nm)
的算法
方法其实很多啊
现将原本的数排一遍序,然后对于每一个询问
(l,r,k)
,从
1−n
每一个数,看它原本的位置是否在
[l,r]
之间,如果在,
k
减一,直到为零,然后输出
多简单的算法……
其实还可以用主席树解决(反正我不会)
T2
题意:
给定
权值的定义:
对于任意点对
(i,j)
(i<j)
,它的权值
S(i,j)
为
(j−i)×ai×aj
最后数列的权值为
∑S(i,j)
n≤5×103
排列有
n!
种,枚举么?
我们考虑这个问题,如何让这个总权值尽可能小
是不是要让最大的尽量靠近所有的数?
那么,我们将原数列排一遍序,将数均匀地放在数列的两端
例如,一开始
a1
放在最左端,然后
a2
放在最右端
这样这个数列就是单峰的
最后算一下即可
计算的时候其实可以不用
O(n2)
,可以用前缀和来优化到
O(n)
想想会爆long long,然后压位压少了,T了……
然而那些直接用long long的竟然直接过了……
T3
题目传送门
题目很多网站上都有,就不加赘述了
简单的树形dp
T4
太难了,到时候再更
表示现在还并不太会