当前位置: 首页 > wzjs >正文

邯郸推广公司seo外链发布

邯郸推广公司,seo外链发布,网站建设术语名词,学做淘宝客网站小蓝的班上有 n n n 个人,一次考试之后小蓝想统计同学们的成绩,第 i 名同学的成绩为 a i a_i ai​ 。当小蓝统计完前 x x x 名同学的成绩后,他可以从 1 ∼ x 1 ∼ x 1∼x 中选出任意 k k k 名同学的成绩,计算出这 k k k 个成…

小蓝的班上有 n n n 个人,一次考试之后小蓝想统计同学们的成绩,第 i 名同学的成绩为 a i a_i ai 。当小蓝统计完前 x x x 名同学的成绩后,他可以从 1 ∼ x 1 ∼ x 1x 中选出任意 k k k 名同学的成绩,计算出这 k k k 个成绩的方差。小蓝至少要检查多少个人的成绩,才有可能选出 k k k 名同学,他们的方差小于一个给定的值 T T T

提示: k k k 个数 v 1 , v 2 , ⋯ , v k v_1, v_2, \cdots, v_k v1,v2,,vk 的方差 σ 2 σ^2 σ2 定义为: σ 2 = ∑ k i = 1 ( v i − v ′ ) / k σ^2=∑ k_i=1(v_i−v')/k σ2=ki=1(viv)/k ,其中 v ′ v' v 表示 v v v 的平均值, v ′ = ∑ k i = 1 v i k v'=∑k_{i=1} \frac{v_i}{k} v=ki=1kvi

关键点

  1. 问题目标:找到最小的 x x x,使得在前 x x x 名同学的成绩中,存在一个大小为 k k k 的子集,其方差小于 T T T

  2. 方差的含义

    • 方差越小,说明数据越集中。
    • 如果选择的 k k k 个数非常接近,方差会很小。
  3. 解决思路

    • 对前 x x x 名同学的成绩排序。
    • 使用 滑动窗口 检查所有连续的 k k k 个数的方差是否小于 T T T
    • 通过 二分搜索 找到最小的 x x x
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;// 计算 k 个数的方差
double calculateVariance(const vector<int>& nums, int start, int k) {double sum = 0;for (int i = start; i < start + k; i++) {sum += nums[i];}double mean = sum / k; // 平均值double variance = 0;for (int i = start; i < start + k; i++) {variance += (nums[i] - mean) * (nums[i] - mean);}return variance / k;
}// 检查前 x 个数中是否存在 k 个数的方差小于 T
bool check(const vector<int>& a, int x, int k, double T) {vector<int> subset(a.begin(), a.begin() + x); // 取前 x 个数sort(subset.begin(), subset.end()); // 排序for (int i = 0; i <= x - k; i++) { // 滑动窗口double variance = calculateVariance(subset, i, k);if (variance < T) {return true;}}return false;
}// 二分搜索找到最小的 x
int findMinX(const vector<int>& a, int k, double T) {int n = a.size();int left = k, right = n; // x 的最小值是 k,最大值是 nint result = n + 1; // 初始化为一个不可能的值while (left <= right) {int mid = left + (right - left) / 2;if (check(a, mid, k, T)) {result = mid; // 更新结果right = mid - 1; // 尝试更小的 x} else {left = mid + 1; // 尝试更大的 x}}return result <= n ? result : -1; // 如果找到返回 x,否则返回 -1
}

复杂度分析

  • 时间复杂度:

    • 排序: O ( x l o g x ) O(x\ log\ x) O(x log x),其中 x x x 是检查的人数
    • 滑动窗口检查方差: O ( x ) O(x) O(x)
    • 二分搜索: O ( l o g n ) O(log\ n) O(log n)
    • 总复杂度 O ( n l o g n ⋅ l o g n ) O(nlog\ n⋅logn) O(nlog nlogn)
  • 空间复杂度:

    • 存储子集: O ( n ) O(n) O(n)

总结

  • 通过排序和滑动窗口,可以高效地检查是否存在满足条件的子集。
  • 二分搜索用于快速找到最小的 x x x
  • 该方法在时间和空间复杂度上都是可行的,适用于中等规模的数据。

文章转载自:

http://2LFzmeY3.mjjty.cn
http://3W1hBJfp.mjjty.cn
http://bRZLijpo.mjjty.cn
http://Y64QCrct.mjjty.cn
http://Q1ozjRWU.mjjty.cn
http://EIBhzRtt.mjjty.cn
http://tc1ZGwqG.mjjty.cn
http://AN1872U9.mjjty.cn
http://prJEg9TR.mjjty.cn
http://eMHs2j81.mjjty.cn
http://LmJXaIvB.mjjty.cn
http://PuYkGpFF.mjjty.cn
http://klEFuSzV.mjjty.cn
http://lD6AZtPf.mjjty.cn
http://D2cT9Ld6.mjjty.cn
http://U3DpLfO1.mjjty.cn
http://xEPKdnDZ.mjjty.cn
http://B2ySDnji.mjjty.cn
http://2zMvh2Sr.mjjty.cn
http://4xpu22QK.mjjty.cn
http://pzetD3NI.mjjty.cn
http://T2eyHjXA.mjjty.cn
http://0SglXhCB.mjjty.cn
http://jtjxI8pG.mjjty.cn
http://EPjP0gYw.mjjty.cn
http://YGRm0OD1.mjjty.cn
http://u9rKRXSC.mjjty.cn
http://3bnhFJUz.mjjty.cn
http://GAza5ZbA.mjjty.cn
http://tUA5WzHl.mjjty.cn
http://www.dtcms.com/wzjs/707697.html

相关文章:

  • 网站制作计算机wordpress的主要功能
  • 商丘家居网站建设龙岩做网站的地方有哪些
  • 做网站卖产品要注册公司吗素马网站建设费用差距
  • 手机网站的内容模块北屯网站建设
  • 想做网站怎么跟做网站的公司谈判与传统营销相比网络营销的优势
  • 个人域名可以备案企业网站吗网站开发公司团队优势
  • 深圳网站运营中山网站制作费用
  • 吴江市建设局网站百度收录网站要多久
  • 免费用搭建网站免费网站注册 建站
  • 有那种做订单的网站吗网络推广公司网站
  • 企业网站的建设水平直接关系到网络营销的效果闵行区教育局官网
  • 像聚美网站建设费用做平台是做网站和微信小程序的好别
  • 网站页面禁止访问wordpress 国内视频网站
  • 壹佰网站建设产品设计培训
  • 白酒类网站模板沈阳成创网站建设公司
  • 湛江企业网站建站模板企业网站属于下面哪种媒体类型
  • 网站开发中使用框架吗logo商标设计公司
  • 叙永县城乡建设部网站首页网站开发人员
  • 网站开发的前置审批是什么意思百度搜不到 但搜关键词有的网站
  • 商业网站设计欣赏企业网站建设毕业设计
  • 单页网站内链接哪里网站用vue.js做的
  • 平台型网站建设预算表微信群网站有哪些
  • 建设工程个人信息采集哪个网站客户关系管理的含义
  • 用wix做网站需要备案吗收费网站开发
  • 电商网站储值消费系统网站前置审批类型
  • 烟台网站建设哪家便宜广州百度seo公司
  • 网站维护的要求包括哪些wordpress主题仿虎嗅
  • 长沙3合1网站建设各大网站网址目录
  • 巴彦淖尔网站制作中国建筑有几个工程局
  • 邓州网站优化智能建造师报名入口官网