Java教程

O - Median Maximization

本文主要是介绍O - Median Maximization,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

传送门未知

题意:给两个整数n,s,寻找一个可能的中位数最大的元素非负的数组(元素可以相同),使得数组长度为n,各元素之和为s。

中位数的定义见题目

思路:既然是非负数组,就意味着可以有为0的元素。而且元素可以相同,就意味着可以将中位数前的数全部设为0,原题转换为寻找一个长度为n/2+1的递增数组,使得数组的最小值最大

附上代码(代码很简单,主要是思路):

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define TL ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);

int t,ans,n,s;

int main()
{
	cin >> t;
	while(t--)
	{
		cin >> n >> s;
		n = n/2+1;
		ans = s/n;
		cout << ans << "\n";
	}
}
这篇关于O - Median Maximization的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!