L - Candy Machine(Gym - 103687L)

本体是前缀和加二分,又包含有贪心的思想。首先对数据排序,初始化前缀和的同时二分查找更新出ans值。

本题难点在于证明对所有前缀所对应的子集中一定会包含有正解子序列。

证明:

我们不取第一个数,在剩余数中任取一个可以得到正解的子序列,我们将这个子序列加上第一个数,势必会降低整个子序列的平均值(在序列中插入一个小于平均值的数会降低序列的平均值),原序列中大于平均值的数字个数不变,正解不受影响。相应的不取任何一个前缀,在剩余数中任取一个可以得到正解的子序列,我们将这个子序列加上他的前缀,势必会降低整个子序列的平均值(因为原数组有序,前缀的平均值必然小于后面任何一个子序列的平均值),原序列中大于平均值的数字个数不变,正解不受影响。我们再用贪心的思想来分析,如果我们在的到的一个子序列加上一个前缀,降低了整体平均值,就会使得序列中的数字会有更大可能性大于平均值,更有可能的到正解,分析可以发现,包含有正解的子序列一定被包含与所有的前缀。

解法

#include<iostream>
#include<queue>
#include<math.h>
#include<algorithm>
#include<cstring>
#include<vector>
#include<map>
#include<set>
const int N = 1e6 + 10;
const int M = 4 * N;
#define mod 192600817
#define int  long long
#define FAST ios::sync_with_stdio(false);
#define endl '\n'
#define rep(i,n)for(int i=1;i<=n;++i)
#define sc(n) scanf("%d",&n);
using namespace std;
const int INF = 1e16;
typedef pair<int, int>PII;
int a[N];
int binary_search(int l, int r, int val)
{
	while (l < r)
	{
		int mid = l + r + 1 >> 1;
		if (a[mid] <= val)l = mid;
		else r = mid - 1;
	}
	return l;
}
signed main()
{
	FAST;
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		cin >> a[i];
	}
	sort(a + 1, a + 1 + n);
	int sum = 0,ans=0;
	double v;
	sum = a[1];
	for (int i = 2; i <= n; i++)
	{
		sum += a[i];
		v = sum / i;
        //查找当前前缀范围内大于平均数的第一个数的下标
		int p = binary_search(1, i, v);
        //前缀数字的数量减去下标即为大于平均数的数的个数,max更新即可		
        ans = max(ans, i - p );
	}
	cout << ans << endl;
	return 0;
}

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IoT是物联网(Internet of Things)的缩写,是指通过物理设备和传感器等技术将物理世界与互联网连接起来的概念。Sensor是传感器的意思,是一种能够感知和测量周围环境参数的装置。Gym master是指健身房的管理系统。那么,"IoT-Sensor-Gym-Master"指的是结合物联网、传感器技术和健身房管理系统的项目或产品。 在这个项目中,通过在健身房内部部署各种类型的传感器设备,可以实时感知和监控健身房的各种环境参数以及用户的行为。例如,可以使用体感传感器来监测用户的运动状态,心率传感器来监测用户心率变化,温湿度传感器来监测环境的温度和湿度等等。这些传感器会把收集到的数据通过物联网技术传输到云端服务器进行处理和分析。 在云端服务器上,会有一个健身房管理系统,通过对接收到的传感器数据进行分析和处理,可以提供各种健身相关的功能和服务。例如,可以根据用户的运动状态自动调整健身器材的强度,提供个性化的健身方案;还可以通过用户心率数据实时预警和监控用户的身体状况,保证用户的健康安全;同时,还可以通过温湿度传感器来实时监测健身房的环境,保证用户的舒适度。 总之,"IoT-Sensor-Gym-Master"项目结合了物联网、传感器技术和健身房管理系统的优势,将智能化和个性化服务引入健身领域,为用户提供更好的健身体验和管理服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值