9.10T实战感悟

今天考得不怎么样啊……
感觉失误比较大……

T1

题意:
给定 n 个数和m组询问,每组询问问你区间 [l,r] 的第 k 小是多少
n104,m2×103
如此简单的一道题,我竟然没有想出特别好的算法
一看基本就是 O(nm) 的算法
方法其实很多啊
现将原本的数排一遍序,然后对于每一个询问 (l,r,k) ,从 1n 每一个数,看它原本的位置是否在 [l,r] 之间,如果在, k 减一,直到为零,然后输出
多简单的算法……
其实还可以用主席树解决(反正我不会)

T2

题意:
给定n个数,让你对这个数列进行排列,使得整个数列的权值最小
权值的定义:
对于任意点对 (i,j)  (i<j) ,它的权值 S(i,j) (ji)×ai×aj
最后数列的权值为 S(i,j)
n5×103
排列有 n! 种,枚举么?
我们考虑这个问题,如何让这个总权值尽可能小
是不是要让最大的尽量靠近所有的数?
那么,我们将原数列排一遍序,将数均匀地放在数列的两端
例如,一开始 a1 放在最左端,然后 a2 放在最右端
这样这个数列就是单峰的
最后算一下即可
计算的时候其实可以不用 O(n2) ,可以用前缀和来优化到 O(n)
想想会爆long long,然后压位压少了,T了……
然而那些直接用long long的竟然直接过了……

T3

题目传送门
题目很多网站上都有,就不加赘述了
简单的树形dp

T4

太难了,到时候再更

表示现在还并不太会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值