首页 > TAG信息列表 > 选第

选第k小元素:特定分治策略

1. 问题 在一个数组中找到第k小的元素并输出 2. 解析         3. 设计 int select(int a[], int low, int high, int k) { int middle;   middle = split(a, low, high); if (middle == k) return a[k]; else if (middle < k) return select(a, middle + 1, high, k); els

实验6选第k小元素:特定分治策略

问题: 给出一个数组$a[n]$,求第$k$小元素是什么。 解析: 分治思想,将数组五个一组划分,并计算出每组数的中位数。然后把各组中位数的中位数找出。统计数组中小于中位数的个数$num$,有三种情况。 ①    $num = k$,则中位数就是要查询的数。 ②    $num > k$,则在小于中位数的集合中查询

AcWing 1049. 大盗阿福

//f[i,j]表示所有走了i步,且当前位于状态j的所有走法 j=1表示选第i个 j=0表示不选 //如果j=0 那么表示不选第i个 那么就可以从f[i-1,0]和f[i-1,1]转移过来 //如果j=1 那么表示选第i个,那么就可以f[i-1,0]+w[i]转移过来 //入口 可以思考一下 //初始的时候 是位于状态0的 //