站外题求助

灌水区

输入描述 输入的第一行是一个整数T,表示有T组测试数据。 每组测试数据第一行是一个整数N(1<=N<=1000)表示在贝壳街上共有N个住户。 接下来N行,每行一个整数ai(0<=ai<=30000)表示每个住户住所的位置,所有住户住所的位置均不相同。 输出描述 对于每组输入,输出一行,包含两个整数,分别是你确定的商店位置,以及商店到所有住户住所的距离之和。
by DFs_YYDS @ 2024-03-21 13:44:15


@[DFs_YYDS](/user/1119406) 每次for扫一遍,记录在左边的和在右边的,这样不就行了?
by 菜のcrzOvO @ 2024-03-21 13:56:24


楼主要上学去了,有答复at我
by DFs_YYDS @ 2024-03-21 13:56:48


@[菜のcrzOvO](/user/769006) 看上去是 $O(n^2)$ 的?
by DFs_YYDS @ 2024-03-21 13:57:21


对了,老师说这题是贪心
by DFs_YYDS @ 2024-03-21 13:57:33


直接暴算即可
by __D_A_T__ @ 2024-03-21 13:57:48


@[DFs_YYDS](/user/1119406) 不是,你用 $l$ 记录左边房子个数,$r$ 右边,再记录左边和与右边和,扫一遍,如果这个位置有房子,那么 $l+1$,每次统计再更新左边和与右边和,再统计答案 时间复杂度 $O(n+\max a_i)$
by 菜のcrzOvO @ 2024-03-21 14:09:19


奇数住户时开在最中间的住户那,偶数住户时开在最中间那两个住户的中间任意位置,答案暴力算即可。
by 轩大虾22 @ 2024-03-21 15:07:09


|