【线段树】P8539 「Wdoi-2」来自地上的支援|普及+
P8539 「Wdoi-2」来自地上的支援
题目背景
波光粼粼的山顶湖与庄严神圣的神社之下,是一座复合型活火山。
沿幻想风穴而下,便能到达火山之下,废弃已久的地狱原址。
在旧地狱中,有一座大都市。那里是旧地狱还是地狱的时候在那工作的众鬼们居住的地方,只有那里亡者们是无法踏入去的。后来地狱体制改革,机构搬离了这个地方。
因为这个缘故这块地狱变成了废墟,但却有一部分看上了那里的妖怪擅作主张占领了那里,于是就成了如今的旧地狱了。
这里比地上更没有秩序可言。悍匪恶霸,特别是惹人类讨厌的家伙都喜欢搬到这边定居下来。
自旧地狱喷泻而出的间歇泉,给妖怪之山带来了优良的温泉,也喷出了大量的怨灵。
为了解决这次异变,乐园的巫女和普通的魔法使结伴而行,在来自地上的支援下,自幻想风穴直冲地底。
先后结(bao)识(da)了黑暗洞窟中的明亮之网、地壳下的嫉妒心、人们所谈论的怪力乱神后,二人来到了遗址中心的洋馆,地灵殿。
受这里主人的指引,二人来到了位于深处的间歇泉地下中心。
题目描述
简要题意
给定正整数 n n n、 v v v 和长度为 n n n 的数组 { A i } \{A_i\} {Ai}。
有一个长度为 n n n 的数组 B B B,初始值与 A A A 相同。
执行 n n n 次操作,第 i i i 次操作在 [ 1 , i ] [1,i] [1,i] 中按如下规则选取一个正整数 j j j,然后把 B j B_j Bj 变成 B j + v B_j+v Bj+v:
- 选取 B j B_j Bj 最大的 j j j。
- B j B_j Bj 相同时选择 A j A_j Aj 最大的 j j j。
- A j , B j A_j,B_j Aj,Bj 均相同,选择较小的 j j j。
我们称这是选中了一次 j j j。
有 m m m 次询问,每次询问给定 x i , k i x_i,k_i xi,ki。表示求最小的 s s s,使得若将 A x i A_{x_i} Axi 的初始值改为 s s s(注意此时 B x i B_{x_i} Bxi 的初始值也会跟着改变), x i x_i xi 至少被选中 k i k_i ki 次,或报告不存在(结果为 0 0 0)。请注意, s s s 不存在最小值时也是报告不存在(结果为 0 0 0)。
询问之间互相独立,也就是每次询问不会对 A x i A_{x_i} Axi 和 B x i B_{x_i} Bxi 产生实质性更改。
原始题意
到达控制中心之后,主角组和灵乌路空进行了激烈的狗斗大赛。负责技术维护的河童需要接受荷取来自地上指挥部的指令,保障生产安全。
具体地,有 n n n 个核反应机组依次排开,第 i i i 个机组的活动强度为 A i A_i Ai。为了维护平衡,控制系统依次操作 n n n 次,第 i i i 次操作会在前 i i i 个机组中找到一个当前活动度最高的机组,进行一次调节平衡操作,并将其活动度增加 v v v。倘若有多个机组活动度最高,就应当选择初始活动度最大的,若还是无法比较,则取编号最小。
为了在自动控制系统的基础上调节平衡,荷取会发出 m m m 条指令,形如她每次会给出两个整数 x i , k i x_i,k_i xi,ki,表示她会修改第 x i x_i xi 个机组的初始活动度。她希望通过修改(必须改成一个非负整数 s s s)后, x i x_i xi 号机组至少被平衡 k i k_i ki 次。如果无论如何都无法达到要求,那么结果就是 0 0 0;否则请求出满足条件的最小的 s s s。
输入格式
- 第一行有三个整数 n , m , v n, m, v n,m,v。
- 接下来一行,有 n n n 个整数,描述 a i a_i ai。
- 接下来 m m m 行,每行有两个整数 x i , k i x_i,k_i xi,ki,描述一次询问。
输出格式
- 一行,输出两个整数,表示所有结果的异或和与加法和。
输入输出样例 #1
输入 #1
7 2 3
1 4 1 5 4 1 1
3 3
6 4
输出 #1
7 7
输入输出样例 #2
输入 #2
10 10 9
14 91 84 13 97 92 23 64 31 10
5 2
5 5
9 1
2 6
9 1
5 4
3 5
2 8
8 2
5 4
输出 #2
245 1177
说明/提示
样例 1 解释
对于第一次询问,我们将 A 3 A_3 A3 修改为 7 7 7。
- 第一次操作选择了位置 1 1 1,于是 B 1 B_1 B1 变为 4 4 4。
- 第二次操作选择了位置 2 2 2,于是 B 2 B_2 B2 变为 7 7 7。虽然操作前 B 1 = B 2 B_1=B_2 B1=B2,但是 A 2 > A 1 A_2>A_1 A2>A1,因此选择位置 2 2 2。
- 第三次操作选择了位置 3 3 3,于是 B 3 B_3 B3 变为 10 10 10。
- 第四次操作选择了位置 3 3 3,于是 B 3 B_3 B3 变为 13 13 13。
- 第五次操作选择了位置 3 3 3,于是 B 3 B_3 B3 变为 16 16 16。
- 第六次操作选择了位置 3 3 3,于是 B 3 B_3 B3 变为 19 19 19。
- 第七次操作选择了位置 3 3 3,于是 B 3 B_3 B3 变为 22 22 22。
于是位置 3 3 3 一共被选择了 5 5 5 次,满足题意。可以证明,如果把 A 3 A_3 A3 的初始值设为 6 6 6,无法达成要求。于是该询问结果为 7 7 7。
对于第二个询问,容易发现不可能有 4 4 4 次以上操作选择位置 6 6 6。因此该询问结果为 0 0 0。
7 ⊕ 0 = 7 7\oplus 0=7 7⊕0=7, 7 + 0 = 7 7+0=7 7+0=7,因此输出 7 , 7 7,7 7,7。
数据范围
Subtask n , m ≤ a i ≤ v ≤ 分值 1 10 100 10 10 2 100 5 × 1 0 3 50 20 3 1 0 3 1 0 9 100 10 4 1 0 5 1 0 9 100 25 5 2 × 1 0 6 1 0 9 100 35 \def\arraystretch{1.5} \begin{array}{|c|c|c|c|c|}\hline \textbf{Subtask} & \bm{n,m\le} & \bm {a_i\le } & \bm{v\le} & \textbf{分值} \cr\hline 1 & 10 & 100 & 10 & 10 \cr\hline 2 & 100 & 5\times 10^3 & 50 & 20 \cr\hline 3 & 10^3 & 10^9 & 100 & 10 \cr\hline 4 & 10^5 & 10^9 & 100 & 25 \cr\hline 5 & 2\times 10^6 & 10^9 & 100 & 35 \cr\hline \end{array} Subtask12345n,m≤101001031052×106ai≤1005×103109109109v≤1050100100100分值1020102535
对于全部数据,满足 1 ≤ n , m ≤ 2 × 1 0 6 1 \le n,m \le 2\times 10^6 1≤n,m≤2×106, 1 ≤ v ≤ 100 1 \le v \le 100 1≤v≤100, 1 ≤ a i ≤ 1 0 9 1 \le a_i \le 10 ^ 9 1≤ai≤109, 1 ≤ x , k ≤ n 1 \le x,k \le n 1≤x,k≤n。
本题 IO 量较大,请选择合适的输入方式。
树状数组(或线段树)
性质一:执行到第i步(i >=xi)时,如果没有选择xi,则永远不会选择xi。令本次选择的是j1,则xi永远劣于j1。
结论:i ∈ \in ∈[xi,xi+ki-1]时,必须选择xi。
具体分为两部分:
一,c[j]= 执行完1到j步后,b[1…j]的最大值。贴别的是b[0]=0。s >= c[xi-1]。
二, ∀ \forall ∀i ∈ \in ∈ [xi+1,xi+k-1] s >max(a[i]-v*(i-xi))
单个查询时间复杂度:O(logn),总时间复杂度:O((n+m)logn)
每个查询的结果在int范围中,但其和在long long范围中。
代码
核心代码
#include <iostream>
#include <sstream>
#include <vector>
#include<map>
#include<unordered_map>
#include<set>
#include<unordered_set>
#include<string>
#include<algorithm>
#include<functional>
#include<queue>
#include <stack>
#include<iomanip>
#include<numeric>
#include <math.h>
#include <climits>
#include<assert.h>
#include<cstring>
#include<list>#include <bitset>
using namespace std;template<class T1, class T2>
std::istream& operator >> (std::istream& in, pair<T1, T2>& pr) {in >> pr.first >> pr.second;return in;
}template<class T1, class T2, class T3 >
std::istream& operator >> (std::istream& in, tuple<T1, T2, T3>& t) {in >> get<0>(t) >> get<1>(t) >> get<2>(t);return in;
}template<class T1, class T2, class T3, class T4 >
std::istream& operator >> (std::istream& in, tuple<T1, T2, T3, T4>& t) {in >> get<0>(t) >> get<1>(t) >> get<2>(t) >> get<3>(t);return in;
}template<class T = int>
vector<T> Read() {int n;scanf("%d", &n);vector<T> ret(n);for (int i = 0; i < n; i++) {cin >> ret[i];}return ret;
}template<class T = int>
vector<T> Read(int n) {vector<T> ret(n);for (int i = 0; i < n; i++) {cin >> ret[i];}return ret;
}template<int N = 1'000'000>
class COutBuff
{
public:COutBuff() {m_p = puffer;}template<class T>void write(T x) {int num[28], sp = 0;if (x < 0)*m_p++ = '-', x = -x;if (!x)*m_p++ = 48;while (x)num[++sp] = x % 10, x /= 10;while (sp)*m_p++ = num[sp--] + 48;AuotToFile();}void writestr(const char* sz) {strcpy(m_p, sz);m_p += strlen(sz);AuotToFile();}inline void write(char ch){*m_p++ = ch;AuotToFile();}inline void ToFile() {fwrite(puffer, 1, m_p - puffer, stdout);m_p = puffer;} ~COutBuff() {ToFile();}
private:inline void AuotToFile() {if (m_p - puffer > N - 100) {ToFile();}}char puffer[N], * m_p;
};template<int N = 12 * 1'000'000>
class CInBuff
{
public:inline CInBuff() {int readCnt = fread(buffer, 1, N, stdin);buffer[readCnt] = 0;}inline int Read() {int x(0), f(0);while (!isdigit(*S))f |= (*S++ == '-');while (isdigit(*S))x = (x << 1) + (x << 3) + (*S++ ^ 48);return f ? -x : x;}
private:char buffer[N] , * S = buffer;
};template<class T = int, T def = INT_MIN>
class CTreeArrMax
{
public:CTreeArrMax(int iEleSize) :m_iMax(iEleSize) {m_aMax.assign(iEleSize + 1, def);m_aRangMax.assign(iEleSize + 1, def);}void Modify(int indexBase0, T value){indexBase0++;if (value <= m_aMax[indexBase0]){return;}m_aMax[indexBase0] = value;while (indexBase0 <= m_iMax){m_aRangMax[indexBase0] = max(m_aRangMax[indexBase0], value);indexBase0 += BitLower(indexBase0);}}T Query(int leftBas0, int rBase0){leftBas0++;rBase0++;leftBas0 = max(1, leftBas0);rBase0 = min(m_iMax, rBase0);T iMax = def;while (rBase0 >= leftBas0){const int pre = rBase0 - BitLower(rBase0);if (pre + 1 >= leftBas0){iMax = max(iMax, m_aRangMax[rBase0]);rBase0 = pre;}else{iMax = max(iMax, m_aMax[rBase0]);rBase0--;}}return iMax;}
protected:int BitLower(int x){return x & (-x);}const int m_iMax;vector<T> m_aMax, m_aRangMax;
};class Solution {
public:pair<int, long long> Ans(const int V, const vector<int>& a, const vector<pair<int, int>>& xk) {const int N = a.size();vector<int> c(N + 1);{vector<int> tmp(1);tmp.insert(tmp.end(), a.begin(), a.end());int pre = 0;for (int i = 1; i <= N; i++) {if (tmp[i] >= tmp[pre]) {pre = i;}tmp[pre] += V;c[i] = tmp[pre];}}CTreeArrMax treeArr(N + 1);{for (int i = 1; i <= N; i++) {treeArr.Modify(i, a[i - 1] - i * V);}}int ans1 = 0;long long ans2 = 0;for (const auto& [x, k] : xk) {if (N - x + 1 < k) { continue; }int s = c[x - 1];int r = treeArr.Query(x + 1, x + k - 1) + V * x;if (r + 1 > s) {s = r + 1;}ans1 ^= s;ans2 += s;}return { ans1,ans2 };}
};int main() {
#ifdef _DEBUGfreopen("a.in", "r", stdin);
#endif // DEBUG int n,m,V;CInBuff<12*2000'010*3> ib;n = ib.Read();m = ib.Read();V = ib.Read();vector<int> a(n);for (int i = 0; i < n; i++) {a[i] = ib.Read();}vector<pair<int, int>> xk(m);for (int i = 0; i < m; i++) {xk[i].first = ib.Read();xk[i].second = ib.Read();}auto res = Solution().Ans(V,a,xk);
#ifdef _DEBUG /*printf("T=%d,", T);*/Out(a, "a=");Out(xk, "xk=");/*Out(que, "que=");*/
#endif // DEBUG cout << res.first << " " << res.second << endl;return 0;
}
单元测试
vector<int> a;vector<pair<int, int>> xk;TEST_METHOD(TestMethod11){a = { 1,4,1,5,4,1,1 }, xk = { {3,3},{6,4} };auto res = Solution().Ans(3,a,xk);AssertEx({ 7,7LL}, res);}TEST_METHOD(TestMethod12) {a = { 14,91,84,13,97,92,23,64,31,10 }, xk = { {5,2},{5,5},{9,1},{2,6},{9,1},{5,4},{3,5},{2,8},{8,2},{5,4} }; auto res = Solution().Ans(9, a, xk);AssertEx({ 245,1177LL }, res);}
扩展阅读
我想对大家说的话 |
---|
工作中遇到的问题,可以按类别查阅鄙人的算法文章,请点击《算法与数据汇总》。 |
学习算法:按章节学习《喜缺全书算法册》,大量的题目和测试用例,打包下载。重视操作 |
有效学习:明确的目标 及时的反馈 拉伸区(难度合适) 专注 |
闻缺陷则喜(喜缺)是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。 |
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。 |
如果程序是一条龙,那算法就是他的是睛 |
失败+反思=成功 成功+反思=成功 |
视频课程
先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771
如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176
测试环境
操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境: VS2022 C++17
如无特殊说明,本算法用**C++**实现。
相关文章:
【线段树】P8539 「Wdoi-2」来自地上的支援|普及+
P8539 「Wdoi-2」来自地上的支援 题目背景 波光粼粼的山顶湖与庄严神圣的神社之下,是一座复合型活火山。 沿幻想风穴而下,便能到达火山之下,废弃已久的地狱原址。 在旧地狱中,有一座大都市。那里是旧地狱还是地狱的时候在那工作…...

《TCP/IP详解 卷1:协议》之第七、八章:Ping Traceroute
目录 一、ICMP回显请求和回显应答 1、ICMP回显请求 2、ICMP回显应答 二、ARP高速缓存 三、IP记录路由选项(Record Route,RR) 1、记录路由选项的工作过程 2、RR 选项的 IP 头部格式 2.1、RR 请求 2.2、RR响应 四、ping 的去返路径 五…...
Leetcode:1. 两数之和
题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。 示…...
【Java学习笔记】冒泡排序
冒泡排序 思想:经过一轮遍历比较,把最大的放在数组的末尾 int[] a {3, 2, 1}; for( int i 0; i < a.length-1; i){for( int j 0; j < a.length-1-i; j){if(a[j] > a[j1]){int temp a[j];a[j] a[j1];a[j1] temp;}} } for( int i 0; i &…...
【数字图像处理】立体视觉基础(2)
相机标定 【1】相机标定的概念 相机参数:相机成像的几何模型的参数 相机标定:求解参数的过程 【2】相机标定的作用 (1)求出相机的内、外参数,以及畸变参数 (2)校正镜头畸变影响,…...

NtripShare 2025第一季度主要技术进展
GNSS方面 1、开源GNSS接收机配置软件基础版本。 2、商业版本GNSS接收机配置软件,增加PPP、文件保存、前端解算(静态、RTK-Static),前端坐标转换。 3、GNSS接收机配置软件全面适配米尔T133i硬件方案。 视觉检测方面 1、做出第…...

头歌实训之存储过程、函数与触发器
🌟 各位看官好,我是maomi_9526! 🌍 种一棵树最好是十年前,其次是现在! 🚀 今天来学习C语言的相关知识。 👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享给更…...

【华为】防火墙双击热备-之-主备模式-单外网线路-分享
FW1和FW2的业务接口都工作在三层,上行连接二层交换机。上行交换机连接运营商的接入点,运营商为企业分配的IP地址为100.100.100.2。现在希望FW1和FW2以主备备份方式工作。正常情况下,流量通过FW1转发;当FW1出现故障时,流…...
c++ package_task
int print_sum(int a, int b) {std::cout << a << " " << b << " " << (a b) << std::endl;return a b; }int main() {// 创建绑定后的可调用对象auto print_sum_5 std::bind(print_sum, 5, 6);// 包装为 packag…...
基于计算机视觉的行为检测:从原理到工业实践
一、行为检测的定义与核心价值 行为检测(Action Recognition)是计算机视觉领域的关键任务,旨在通过分析视频序列理解人类动作的时空特征。其核心价值体现在时序建模和多尺度分析能力上——系统需要捕捉动作的起始、发展和结束全过程,同时适应不同持续时间(0.1秒至数分钟)…...

川翔云电脑32G大显存集群机器上线!
川翔云电脑今日重磅推出32G 大显存机型,为游戏玩家、设计师、AI 开发者等提供极致云端算力体验! 一、两大核心配置,突破性能天花板 ✅ 32G 超大显存机型 行业领先:搭载 NVIDIA 专业显卡,单卡可分配 32G 独立显存&am…...

加里·基尔代尔:CP/M之父与个人计算时代的先驱
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 加里基尔代尔:CP/M之父与个人计算时代的先驱 一、早年生活与教育背景 1.…...

静态多态和动态多态的区别
C多态机制深度解析 多态是面向对象编程的核心特性,允许通过统一接口执行不同实现。在C中,多态表现为基类指针或引用调用虚函数时,根据实际对象类型执行对应派生类的函数逻辑。 基础实现示例 定义基类与派生类,演示动态绑定…...
MQL5教程 06 EA开发实战
文章目录 一、调用多指标多周期EA示例二、获取ZigZag顶点值三、逆势加仓EA 一、调用多指标多周期EA示例 shuju.mqh: class shuju{public:shuju(){} ~shuju(){}void MA(double &ma[],int count,string symbol, // 交易品种名称 ENUM_TIMEFRA…...
LLaMa Factory大模型微调
LLaMa Factory大模型微调 大模型微调平台&硬件LLaMA-Factory安装hfd下载hugging face模型自我认知微调Alpaca数据集指令监督微调断点续训 大模型微调 微调自我认知微调特定领域数据集。 平台&硬件 Ubuntu20.04显卡:M40 24G 2080TI 22G微调框架ÿ…...

Burp靶场JWT学习笔记1
JWT(JSON Web Token) 从其名字就可以看出来,它具有表示身份的作用,其本质是将用户信息储存到一串json字符串中再将其编码得到一串token JWT由三部分组成,分别是 Header,Payload,Signatrue JWTBase64(Header).Base6…...

C++?类和对象(下)!!!
一、前言 在之前我们已经讨论过了有关类和对象的前置知识以及类中的六大默认成员函数,在本期我们继续再讨论类和对象中剩余的友元、初始化列表等相关知识,如果需要再了解之前的知识的话,链接奉上:C?类和对象࿰…...

FastAPI 零基础入门指南:10 分钟搭建高性能 API
一、为什么选择 FastAPI? 想象一下,用 Python 写 API 可以像搭积木一样简单,同时还能拥有媲美 Go 语言的性能,这个框架凭借三大核心优势迅速风靡全球: 开发效率提升 3 倍:类型注解 自动文档,…...
prometheus通过Endpoints自定义grafana的dashboard模块
1、prometheus自定义的dashboard模块 文件路径/etc/prometheus/config_out/prometheus-env.yaml - job_name: serviceMonitor/monitoring/pfil/0honor_labels: falsekubernetes_sd_configs:- role: endpointsnamespaces:names:- monitoringrelabel_configs:- source_labels:- …...

机器人新革命:Pi 0.5如何让智能走进千家万户
在科技飞速发展的今天,机器人技术正在以一种令人惊喜的方式贴近我们的生活。最近,Physical Intelligence 公司推出了 Pi 0.5 版本,这一创新设计不仅颠覆了传统机器人的运作模式,更让我们看到了未来智能设备融入日常生活的无限可能…...
std::mutex底层实现原理
std::mutex是一个用于实现互斥访问的类,其具备两个成员函数——lock和unlock 锁的底层实现原理 锁的底层实现是基于原子操作的,这些原子操作是由指令支持的,因为单个指令是不能被中断的 一些与锁的实现有关的原子指令为: 待补充…...

从数据结构说起(一)
1 揭开数据结构神奇的面纱 1.1 初识数据结构 在C的标准库模板(Standard Template Library,STL)课程上,我初次结识了《数据结构》。C语言提供的标准库模板是面向对象程序设计与泛型程序设计思想相结合的典范。所谓的泛型编程就是编写不依赖于具…...
【后端】构建简洁的音频转写系统:基于火山引擎ASR实现
在当今数字化时代,语音识别技术已经成为许多应用不可或缺的一部分。无论是会议记录、语音助手还是内容字幕,将语音转化为文本的能力对提升用户体验和工作效率至关重要。本文将介绍如何构建一个简洁的音频转写系统,专注于文件上传、云存储以及…...
矫平机终极指南:特殊材料处理、工艺链协同与全球供应链管理
一、特殊材料矫平:挑战与创新解决方案 1. 高温合金(如Inconel 718)处理 技术难点: 屈服强度高达1100 MPa,传统矫平力不足 高温下易氧化,需惰性气体保护环境 解决方案: 采用双伺服电机驱动&a…...
云服务器 —— 公有 IP 与 私有 IP
云服务器的 公有 IP 和 私有 IP 在网络架构中扮演不同的角色,具体用途和区别如下: 目录 1. 公有 IP(Public IP) 作用: 特点: 示例场景: 2. 私有 IP(Private IP) 作用…...

Git基本使用(很详细)
一:Git 概述 1.1 定义:分布式版本控制系统 1.2 版本控制 (1)定义: 版本控制时一种记录文件内容变化,以便将来查阅特定版本修订情况的系统 (2)举例 多副本 优化: 不使用多…...
【人工智能】基于Python和Transformers库构建高效问答系统的实践与实现**
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着自然语言处理(NLP)的发展,问答系统成为了人工智能应用中的一个重要领域。近年来,预训练模型如BERT、GPT、T5等,通过大规模数据的预…...

仓颉编程语言最佳实例 “Hello, world!”
仓颉编程语言最佳实例 “Hello, world!” The Best Practice to Cangjie Programming Language - “Hello, world!” BY JACKSON 1. 仓颉集成开发工具(IDE)安装 打开Chrome浏览器,访问仓颉编程语言官网:https://cangjie-lang.…...
【机器学习-线性回归-3】深入浅出:简单线性回归的概念、原理与实现
在机器学习的世界里,线性回归是最基础也是最常用的算法之一。作为预测分析的基石,简单线性回归为我们理解更复杂的模型提供了完美的起点。无论你是机器学习的新手还是希望巩固基础的老手,理解简单线性回归都至关重要。本文将带你全面了解简单…...

[mysql]窗口函数
目录 窗口函数: 为何要学习窗口函数,与mysql5.7实现语句对比 现在我们介绍一下窗口函数: 函数规则 1序号函数 2分布函数 3前后函数 5其他函数 总结 窗口函数: 首先数据库的迁移是非常慢的,大家学习新特性的时候要考虑自己公司的数据库版本是不是和自己学习的吻合 为何…...