原文

https://www.beiweidoge.top/132.html

P1:求最大值1

题目描述

题目描述
小明给了你n个数字,你需要依次输出:

  • 1到n的最大值,
  • 1到n/2的最大值,n/2+1到n的最大值,
  • 1到n/4的最大值,n/4+1到n/2的最大值,……
    ……
    确保n是2的幂次。
    输入
  • 第一行一个整数n(n < 2e5),
  • 第二行n个整数ai。
    输出
    一共输出2^n-1个答案。
    样例输入
16  
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  

样例输出

16 8 16 4 8 12 16 2 4 6 8 10 12 14 16  

输出说明
输出的顺序是:

  1. 第1层:整个区间的最大值(1-16 → 16),
  2. 第2层:左半区间的最大值(1-8 → 8)和右半区间的最大值(9-16 → 16),
  3. 第3层:将第2层的两个区间再分别分成两半,得到4个区间的最大值(1-4→4, 5-8→8, 9-12→12, 13-16→16),
  4. 第4层:继续二分,直到区间长度为1(此时输出原数列本身)。
    输出的顺序是按层次遍历(BFS)的顺序。

解题思路

  1. 问题分析
    • 题目要求我们按照层次遍历(BFS)的顺序输出一个完全二叉树的节点值,其中每个节点的值表示对应区间的最大值。
    • 输入保证 n 是 2 的幂次,因此可以完美地构建一棵完全二叉树,每个非叶子节点的区间都是其左右子节点区间的并集。
  2. 数据结构选择
    • 使用线段树(Segment Tree)来高效地存储和查询区间最大值。
    • 线段树的每个节点存储对应区间的最大值,构建过程是递归的(DFS),但输出顺序需要按层次遍历(BFS)。
  3. 构建线段树
    • 递归地构建线段树:
      • 叶子节点直接存储数组元素的值。
      • 非叶子节点的值为其左右子节点值的最大值。
    • 递归函数 dfs(t, w, x)
      • tw 表示当前区间的左右端点。
      • x 表示当前节点在线段树数组中的索引。
  4. 层次遍历输出
    • 线段树的存储方式是数组形式,其中索引为 i 的节点的左孩子是 2*i,右孩子是 2*i+1
    • 直接遍历线段树数组的前 n-1 个节点(因为线段树的总节点数为 2n-1,但题目只需要输出前 n 层的节点值)。
  5. 时间复杂度
    • 构建线段树的时间复杂度为 O(n)
    • 输出结果的时间复杂度为 O(n)
    • 总时间复杂度为 O(n),满足题目约束(n < 2e5)。
  6. 关键点
    • 线段树的构建和查询是解决区间问题的经典方法。
    • 层次遍历的顺序直接对应线段树数组的存储顺序(按索引从小到大)。

标准程序

#include <bits/stdc++.h>
using namespace std;
const int N=200010;
int i,n,a[N],f[N*4];
void dfs(int t,int w,int x){int mid;if(t==w){f[x]=a[t];return;}mid=(t+w)/2;dfs(t,mid,x*2);dfs(mid+1,w,x*2+1);f[x]=max(f[x*2],f[x*2+1]);
}
int main(){cin>>n;for(i=1;i<=n;i++) cin>>a[i];dfs(1,n,1);for(i=1;i<n;i++) cout<<f[i]<<" ";
}

P2:求最大值2

题目描述

题目描述
小明给了你n个数字,接下来他会提出m个询问。每个询问会给出一个区间范围,你需要回答这个区间内的最大值是多少。
输入格式

  • 第一行两个整数n和m(1 ≤ n, m ≤ 1e5)
  • 第二行n个整数,表示初始的n个数字
  • 接下来m行,每行三个整数x,y,z:
    • 当x=0时,表示询问区间[y,z]内的最大值
    • 当x=1时,表示将第y个数字修改为z(本题中x只会是0)
      输出格式
  • 对于每个x=0的询问,输出一行表示区间[y,z]的最大值
    样例输入
5 6
1 2 3 4 5
0 1 5
0 1 5
0 2 4
0 3 1
0 4 4
0 5 1

样例输出

5
5
4
3
4
5

数据范围

  • 所有数字都在int范围内
  • 保证y和z在有效范围内(1 ≤ y ≤ z ≤ n)

解题思路

  1. 问题分析
    • 题目要求高效处理多个区间最大值查询(Range Maximum Query, RMQ)。
    • 直接暴力遍历每次查询区间的时间复杂度是O(n),对于m次查询总复杂度O(mn)会超时(n,m≤1e5)。
  2. 数据结构选择
    • 使用线段树(Segment Tree)来预处理数据,支持高效的区间查询。
    • 线段树可以在O(n)时间预处理,O(logn)时间回答每个查询。
  3. 线段树构建
    • 递归构建线段树,每个节点存储对应区间的最大值。
    • 叶子节点直接存储数组元素值。
    • 非叶子节点的值为其左右子节点值的最大值。
  4. 查询处理
    • 对于查询区间[y,z],从根节点开始递归查询:
      • 如果当前节点区间完全包含在查询区间内,直接返回该节点存储的最大值。
      • 如果与查询区间无交集,返回极小值。
      • 否则递归查询左右子树,取两者的最大值。
  5. 边界处理
    • 当y>z时交换y和z(保证区间有效)。
    • 使用快速输入输出优化(ios::sync_with_stdio(false))来加速大量数据的处理。
  6. 时间复杂度
    • 预处理:O(n)
    • 单次查询:O(logn)
    • 总体复杂度:O(n + mlogn),完全满足题目要求。
  7. 空间复杂度
    • 线段树需要4n的空间,对于n≤1e5完全足够。
  8. 优化点
    • 使用结构体存储线段树节点信息,代码更清晰。
    • 递归实现简洁易懂,适合竞赛编程。
    • 输入输出优化对大规模数据很关键。

标准程序

#include <bits/stdc++.h>
using namespace std;
const int N=100010;
int i,n,m,x,y,z,a[N];
struct no{int t,w,x;}f[N*4];
void dfs(int t,int w,int x){int mid;f[x].t=t;f[x].w=w;if(t==w){f[x].x=a[t];return;}mid=(t+w)/2;dfs(t,mid,x*2);dfs(mid+1,w,x*2+1);f[x].x=max(f[x*2].x,f[x*2+1].x);
}
int check(int t,int w,int x){if(t<=f[x].t&&f[x].w<=w) return f[x].x;else if(f[x].w<t||w<f[x].t) return -2e9;else return max(check(t,w,x*2),check(t,w,x*2+1));
}
int main(){ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);cin>>n>>m;for(i=1;i<=n;i++) cin>>a[i];dfs(1,n,1);for(i=1;i<=m;i++){cin>>x>>y>>z;if(y>z) swap(y,z);cout<<check(y,z,1)<<"\n";}
}

P3:求最大值3

题目描述

题目描述
小明给了你n个数字,接下来他会提出m个操作。每个操作可能是查询区间最大值,也可能是修改某个数字的值。
输入格式

  • 第一行两个整数n和m(1 ≤ n, m ≤ 1e5)
  • 第二行n个整数ai,表示初始的n个数字
  • 接下来m行,每行三个整数x,y,z:
    • 当x=0时,表示查询区间[y,z]内的最大值
    • 当x=1时,表示将第y个数字修改为z
      输出格式
  • 对于每个x=0的查询操作,输出一行表示区间[y,z]的最大值
    样例输入
5 6
1 2 3 4 5
0 1 5
1 3 6
0 1 5
0 2 4
1 3 1
0 3 1

样例输出

5
6
6
2

数据范围

  • 所有数字都在int范围内
  • 保证y和z在有效范围内(1 ≤ y ≤ z ≤ n)
  • 修改操作保证y在有效范围内(1 ≤ y ≤ n)

解题思路

解题思路

  1. 问题分析
    • 题目需要同时支持两种操作:区间最大值查询和单点修改
    • 直接暴力解法每次查询O(n),修改O(1),总复杂度O(mn)会超时
    • 需要选择支持高效查询和修改的数据结构
  2. 数据结构选择
    • 线段树:支持O(logn)时间复杂度的区间查询和单点修改
    • 相比RMQ更适合动态数据场景
    • 每个节点存储对应区间的最大值
  3. 线段树实现
    • 构建:递归构建线段树,叶子节点存储数组元素值,非叶子节点存储子节点最大值
    • 查询:递归查询区间[y,z],合并左右子树结果
    • 修改:递归找到对应叶子节点,更新后回溯更新父节点最大值
  4. 关键优化
    • 使用结构体存储节点信息(区间范围、最大值)
    • 输入输出优化处理大数据量
    • 处理无效区间(y>z时交换)
  5. 时间复杂度
    • 预处理:O(n)
    • 查询:O(logn)
    • 修改:O(logn)
    • 总体:O(n + mlogn),完全满足1e5数据规模
  6. 空间复杂度
    • 线段树需要4n空间,对于n≤1e5足够
  7. 注意事项
    • 修改操作需要从根节点递归更新到叶子节点
    • 查询时要正确处理区间包含关系
    • 使用快速IO优化对大规模数据很关键

标准程序

#include <bits/stdc++.h>
using namespace std;
const int N=100010;
int i,n,m,x,y,z,a[N];
struct no{int t,w,x;}f[N*4];
void dfs(int t,int w,int x){int mid;f[x].t=t;f[x].w=w;if(t==w){f[x].x=a[t];return;}mid=(t+w)/2;dfs(t,mid,x*2);dfs(mid+1,w,x*2+1);f[x].x=max(f[x*2].x,f[x*2+1].x);
}
int check(int t,int w,int x){if(t<=f[x].t&&f[x].w<=w) return f[x].x;else if(f[x].w<t||w<f[x].t) return -2e9;else return max(check(t,w,x*2),check(t,w,x*2+1));
}
void change(int x,int y,int z){if(f[x].t==f[x].w){f[x].x=z;return;}if(y<=f[x*2].w) change(x*2,y,z);else change(x*2+1,y,z);f[x].x=max(f[x*2].x,f[x*2+1].x);
}
int main(){ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);cin>>n>>m;for(i=1;i<=n;i++) cin>>a[i];dfs(1,n,1);for(i=1;i<=m;i++){cin>>x>>y>>z;if(x==0){if(y>z) swap(y,z);cout<<check(y,z,1)<<"\n";}else change(1,y,z);}
}

P4:单点修改区间求和

题目描述

题目描述
给定一个初始全部为零的数列,需要支持两种操作:修改某个元素的值,或查询区间的连续和。
输入格式

  • 第一行两个正整数n和m(n ≤ 100000,m ≤ 100000)
  • 接下来m行,每行三个正整数k,a,b:
    • 当k=0时,表示将第a个位置的数字增加b
    • 当k=1时,表示查询区间[a,b]内所有数的和(不保证a≤b)
  • 保证所有数据在long long范围内
    输出格式
  • 对于每个k=1的查询操作,输出一行表示区间和
    样例输入
10 20
0 1 10
1 1 4
0 6 6
1 4 10
1 8 9
1 4 9
0 10 2
1 1 8
0 2 10
1 3 9
0 7 8
0 3 10
0 1 1
1 3 8
1 6 9
0 5 5
1 1 8
0 4 2
1 2 8
0 1 1

样例输出

10
6
0
6
16
6
24
14
50
41

数据范围

  • 1 ≤ n ≤ 1e5
  • 1 ≤ m ≤ 1e5
  • 修改操作:1 ≤ a ≤ n,b为long long范围内的正整数
  • 查询操作:1 ≤ a,b ≤ n(a可能大于b)

解题思路

  1. 问题分析
    • 需要实现两种操作:单点修改(增加某个位置的值)和区间求和查询
    • 直接暴力解法每次查询需要O(n)时间,无法处理1e5量级的数据
    • 需要选择支持高效单点修改和区间查询的数据结构
  2. 数据结构选择
    • 线段树:支持O(logn)时间复杂度的单点修改和区间查询
    • 相比树状数组更直观易懂,适合竞赛使用
    • 每个节点存储对应区间的和
  3. 线段树实现
    • 初始化:递归构建线段树,所有节点初始值为0
    • 单点修改:递归找到对应叶子节点,增加指定值后回溯更新父节点和
    • 区间查询:递归查询区间[y,z],合并左右子树结果
    • 无效区间处理:当y>z时交换y和z
  4. 关键优化
    • 使用结构体存储节点信息(区间范围、区间和)
    • 输入输出优化处理大数据量
    • 使用long long类型防止数据溢出
  5. 时间复杂度
    • 预处理:O(n)
    • 单次修改:O(logn)
    • 单次查询:O(logn)
    • 总体:O(n + mlogn),完全满足1e5数据规模
  6. 空间复杂度
    • 线段树需要4n空间,对于n≤1e5足够
  7. 注意事项
    • 需要处理a>b的查询情况
    • 修改是增加操作而非直接赋值
    • 所有操作都可能涉及大数,必须使用long long类型

标准程序

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=100010;
int i,n,m,x,y,z,a[N];
struct no{int t,w,x;}f[N*4];
void dfs(int t,int w,int x){int mid;f[x].t=t;f[x].w=w;if(t==w){f[x].x=0;return;}mid=(t+w)/2;dfs(t,mid,x*2);dfs(mid+1,w,x*2+1);f[x].x=f[x*2].x+f[x*2+1].x;
}
int check(int t,int w,int x){if(t<=f[x].t&&f[x].w<=w) return f[x].x;else if(f[x].w<t||w<f[x].t) return 0;else return check(t,w,x*2)+check(t,w,x*2+1);
}
void change(int x,int y,int z){if(f[x].t==f[x].w){f[x].x+=z;return;}if(y<=f[x*2].w) change(x*2,y,z);else change(x*2+1,y,z);f[x].x=f[x*2].x+f[x*2+1].x;
}
signed main(){ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);cin>>n>>m;dfs(1,n,1);for(i=1;i<=m;i++){cin>>x>>y>>z;if(x==0) change(1,y,z);else{if(y>z) swap(y,z);cout<<check(y,z,1)<<"\n";}}
}

P5:最大数

题目描述

题目描述
给定一个初始为空的整数序列,支持两种操作:向序列末尾添加元素,或查询序列最后L个元素中的最大值。添加操作的值会受到之前查询结果的影响。
输入格式

  • 第一行两个正整数m和p,表示操作次数和模数
  • 接下来m行,每行一个操作:
    • A t:向序列末尾添加一个数,值为(t + a) % p,其中a是上一次查询的结果(初始为0)
    • Q L:查询序列最后L个元素中的最大值
  • 保证第一个操作一定是添加操作
  • 保证查询操作中的L不超过当前序列长度
    输出格式
  • 对于每个Q L操作,输出一行表示最后L个元素的最大值
    样例输入
10 100
A 97
Q 1
Q 1
A 17
Q 2
A 63
Q 1
Q 1
Q 3
A 99

样例输出

97
97
97
60
60
97

数据范围

  • 1 ≤ m ≤ 2×10^5
  • 1 ≤ p ≤ 2×10^9
  • 0 ≤ t < p
  • 查询操作保证1 ≤ L ≤ 当前序列长度
    操作说明
  1. 序列初始为空
  2. 添加操作的值计算:(输入值t + 上次查询结果a) % p
  3. 第一个操作保证是添加操作
  4. 查询操作保证L合法

解题思路

  1. 问题分析
    • 需要维护一个动态增长的序列,支持快速查询最后L个元素的最大值
    • 添加操作的值计算涉及前一次查询结果(带模运算)
    • 操作次数高达2×10^5,需要高效算法
  2. 数据结构选择
    • 线段树:支持O(logn)时间复杂度的单点修改和区间最大值查询
    • 动态维护序列长度,每次添加相当于单点修改
    • 查询最后L个数相当于查询区间[s-L+1, s]的最大值(s为当前序列长度)
  3. 关键实现
    • 初始化:预先建立足够大的线段树(根据最大可能长度)
    • 添加操作
      1. 序列长度s加1
      2. 计算新值:(t + a) % p
      3. 在线段树对应位置更新值
    • 查询操作
      1. 计算查询区间[s-L+1, s]
      2. 在线段树查询区间最大值
      3. 记录查询结果a供下次添加操作使用
  4. 优化处理
    • 使用结构体存储线段树节点信息(区间范围、最大值)
    • 输入输出优化处理大数据量
    • 使用long long类型防止数据溢出
  5. 时间复杂度
    • 预处理:O(n)(建立线段树)
    • 单次添加:O(logn)
    • 单次查询:O(logn)
    • 总体:O(mlogn),完全满足2×10^5数据规模
  6. 空间复杂度
    • 线段树需要4n空间,对于n≤2×10^5足够
  7. 注意事项
    • 初始a值为0
    • 第一个操作保证是添加操作
    • 查询操作保证L不超过当前序列长度
    • 添加操作的值计算需要模p运算
  8. 边界情况
    • 序列初始为空
    • 连续多次查询
    • 添加和查询操作交替进行
    • 大数运算防止溢出
      该解法通过线段树高效维护动态序列,完美解决了大规模数据下的添加和查询操作需求。

标准程序

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,m,i,t,s,a;
char ch;
struct no{int t,w,x;}f[1000010];
void dfs(int t,int w,int x){int mid;f[x].t=t;f[x].w=w;if(t==w){f[x].x=0;f[x].t=t;f[x].w=w;return;}mid=(t+w)/2;dfs(t,mid,x*2);dfs(mid+1,w,x*2+1);f[x].x=max(f[x*2].x,f[x*2+1].x);}
int check(int t,int w,int x){if(t<=f[x].t&&w>=f[x].w) return f[x].x;if(w<f[x*2+1].t) return check(t,w,x*2);if(t>f[x*2].w) return check(t,w,x*2+1);return max(check(t,w,x*2),check(t,w,x*2+1));
}
void change(int y,int k,int x){if(f[x].t==f[x].w){f[x].x=k;return;}if(y<f[x*2+1].t) change(y,k,x*2);else change(y,k,x*2+1);f[x].x=max(f[x*2].x,f[x*2+1].x);
}
signed main(){ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);cin>>n>>m;dfs(1,n,1);for(i=1;i<=n;i++){cin>>ch>>t;if(ch=='Q') a=check(s-t+1,s,1),cout<<a<<"\n";else s++,change(s,(t+a)%m,1);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/85718.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/85718.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/85718.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

渗透实战PortSwigger Labs AngularJS DOM XSS利用详解

本Lab学习到关于AngularJS的 xss 漏洞利用 直接输入回显页面&#xff0c;但是把<>进了 html 编码了 当我们输入{{11}}&#xff0c;没有当作字符处理&#xff0c;而是执行了 {{}} 是多种前端框架&#xff08;如 Vue、Angular、Django 模板等&#xff09;中常见的模板插值语…

Ubuntu 多网卡安全路由配置(SSH 不断线版)

Ubuntu 多网卡路由配置笔记&#xff08;内网 外网同时通&#xff09;&#xff08;SSH断线版&#xff09;文章浏览阅读386次&#xff0c;点赞4次&#xff0c;收藏5次。本文介绍了Ubuntu 如何配置双网卡设备的路由规则&#xff0c;使默认流量走外网&#xff08;192.168.2.0/24&a…

基于昇腾NPU部署llamafactory单机多卡微调Qwen3教程

1. 进入华为云 华为云首页 点击右上角控制台 2.进入ModelArts 点击搜索框->搜索“ModelArts”->选择AI开发平台ModelArts->进入平台后点击开发者空间 3.创建Notebook 3.1在开发者空间中点击Notebook->在西南贵阳一下点击创建Notebook 3.2进入创建Notebook页…

关于XES文件格式诸多问题

1. 格式类型是什么&#xff1f; case:concept:name (案例ID) - 必须是字符串类型concept:name (活动名称) - 字符串类型time:timestamp - 必须是datetime类型 2. 如何修改&#xff1f; data[case:concept:name] data[case:concept:name].astype(str)data[concept:name] data…

数据融合平台有哪些?在数据治理中发挥什么作用?

目录 一、常见的数据融合平台 &#xff08;一&#xff09;传统数据融合平台 &#xff08;二&#xff09;实时数据融合平台 &#xff08;三&#xff09;云数据融合平台 二、数据融合平台在数据治理中的作用 &#xff08;一&#xff09;提升数据质量 &#xff08;二&#…

​​Linux:XFS 文件系统扩容完整指南

​​​问题背景​​ 在扩展 Linux 根目录 / 时,我遇到了一个错误: sudo resize2fs /dev/uos/root resize2fs: 超级块中的幻数有错 尝试打开 /dev/uos/root 时找不到有效的文件系统超级块。 经过排查,发现根本原因是 ​​文件系统类型是 XFS​​,而 resize2fs 仅适用于 e…

网络安全之CTF专题赛RE题解

easyre hap文件改成zip格式然后解压去反编译abc文件即可拿到源码 这里推荐一个网站.abcD 蛮好用的 下载反编译结果&#xff0c;解压后用vscode打开分析。 这里可以看到一些目录结构&#xff0c;我们先看看flag目录 x_2_2.count位1000000的时候就会输出flag那么大概率是一个点…

a padding to disable MSIE and Chrome friendly error page

问题 a padding to disable MSIE and Chrome friendly error page 解决 nginx 代理地址 配错了

71、C# Parallel.ForEach 详解

Parallel.ForEach 是 .NET Framework 4.0 引入的并行编程功能的一部分&#xff0c;位于 System.Threading.Tasks 命名空间中。它允许你对集合中的元素进行并行处理&#xff0c;可以显著提高处理大量数据时的性能。 基本用法 using System; using System.Collections.Generic;…

生产者-消费者模式在不同操作系统上的行为差异

在多线程编程中&#xff0c;生产者-消费者模式是一种常见的设计模式&#xff0c;用于解决线程间的数据同步问题。最近&#xff0c;我在 Linux 和 macOS 上运行同一个生产者-消费者模式的程序时&#xff0c;发现它们表现出不同的行为。本文将介绍这个现象、分析其原因&#xff0…

【JS-4.1-DOM获取元素操作】深入理解DOM操作:高效获取页面元素的方法与实践

在现代Web开发中&#xff0c;DOM&#xff08;文档对象模型&#xff09;操作是前端工程师的必备技能。而DOM操作的第一步&#xff0c;往往是从页面中获取我们需要操作的元素。本文将全面介绍各种获取页面元素的方法&#xff0c;分析它们的性能特点&#xff0c;并提供最佳实践建议…

UE5错误 Linux离线状态下错误 请求失败libcurl错误:6无法解析主机名

UE5错误 Linux离线状态下错误 请求失败libcurl错误&#xff1a;6无法解析主机名 完整描述问题解析解决方法 完整描述 loghttp&#xff1a;warning&#xff1a;ox015cba21400:request failed libcurl error :6 (couldn’t resolve host name ) 问题解析 这是因为在离线状态下…

深度学习实战111-基于神经网络的A股、美股、黄金对冲投资策略(PyTorch LSTM)

文章目录 一、A股与美股对冲互补投资方案1. 现象与逻辑2. 对冲互补投资思路3. 资金分配样例4. 最大化收益的关键二、对冲互补投资思路1. 资金分配原则2. 动态调整机制3. 对冲操作三、投资方案样例1. 初始资金分配(假设总资金10万元)2. 动态调整举例情景一:美股进入牛市,A股…

在线教育平台敏捷开发项目

项目背景 产品名称&#xff1a;LearnFlow&#xff08;在线学习平台&#xff09; 核心目标&#xff1a;6个月内上线MVP&#xff08;最小可行产品&#xff09;&#xff0c;支持课程学习、进度跟踪、测验功能。 团队构成&#xff1a; 产品负责人&#xff08;PO&#xff09;1人 S…

C++面试题(35)-------找出第 n 个丑数(Ugly Number)

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 我们把只包含质因子 2、3 和 5 的数称作丑数&#xff08;Ugly Number&#xff09;。例如 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。 请编写一个函数&#xff0c;找出第 n …

Day03_数据结构(手写)

01.数据结构画图 02. //11.按值查找返回位置 int search_value(node_p H,int value) { if(HNULL){ printf("入参为空.\n"); return -1; …

【Java学习笔记】Collections工具类

Collections 工具类 基本介绍 &#xff08;1&#xff09;Collections 中提供了一系列静态方法对集合元素进行排序&#xff0c;查询和修改等操作 &#xff08;2&#xff09;操作对象&#xff1a;集合 常用方法一览表 方法描述reverse(List<?> list)反转 List 中元素…

spring-webmvc @ResponseBody 典型用法

典型用法 基本用法&#xff1a;返回 JSON 数据 GetMapping("/users/{id}") ResponseBody public User getUser(PathVariable Long id) {return userService.findById(id); }Spring 自动使用 Jackson&#xff08;或其他 HttpMessageConverter&#xff09;将 User 对…

AI-调查研究-08-跑步分析研究 潜在伤害与预防 不同年龄段与性别的情况

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月16日更新到&#xff1a; AI炼丹日志-29 - 字节…

AI任务相关解决方案9-深度学习在工业质检中的应用:基于DeepLabv3+模型的NEU-seg数据集语义分割研究

大家好我是微学AI,今天给大家介绍一下AI任务相关解决方案9-深度学习在工业质检中的应用:基于DeepLabv3+模型的NEU-seg数据集语义分割研究。DeepLabv3+模型在NEU-seg数据集上实现了高达87.65%的平均交并比(mIoU),为金属表面缺陷的高精度检测提供了有力工具。本文将详细探讨Dee…