@11101001
2017-10-29T20:56:17.000000Z
字数 466
阅读 937
前%30和两个特殊数据都做对了GG....
正解:
选跳楼的集合,只从高向低,那么话费
将他从低向高排序那么其实中间的高度差就可约掉了,就变为了
然后就可以了忽略高度了
有低向高排序,前缀和处理s(hi)再选i,j两点把i到j排序取出然后
dp:
f[i][j]停留再第i个楼上已经跳了j次楼
那么就是枚举k从i+1到n,
f[i][j] f[k][j+1]=min(f[k][j+1],f[i][j]+c[k]+h[k]-h[i])
30分爆搜走人
正解:
对于给定序列排序
那么
a1+a2=b1
a1+a3=b2
a2+a3=??
那么要是知道a1+a3每次把前边的和数删掉,那么就把b1删掉,b2删掉,a2+a3s删掉那么此时最小值是a1+a5,一次类推,就出来了
那么就是求a2+a3了,枚举a2+a3是b中的数
vector开炸了CE了QAQ
对数据进行分块
n<100时
然后在块内
预处理链表(动态内存
查询的时候二分
p>100时modp=v时
可写成kp+v,那么k<=100
开10000个数组,把每一个数丢到数组里,就是询问数组里有多少个数