1.27补题 回训练营

E 智乃的小球

题目描述

 在一条无限长的水平直线上,有 n 个小球,每个小球的质量相同,体积可以忽略不计。这些小球初始时位于直线上的不同位置,并且每个小球有一个初始速度,速度为 -1 m/s 或 1 m/s。速度为 -1 m/s 表示小球向左运动,速度为 1 m/s 表示小球向右运动。

当两个小球相向而行并发生碰撞时,它们会发生完全弹性碰撞,即交换速度。现在,你需要编写一个程序来判断,在足够长的时间后,是否会发生第 k 对小球的碰撞,以及如果会发生,碰撞将在何时发生。

输入描述

 第一行包含两个正整数 n 和 k,分别表示小球的个数和需要判断的第 k 对碰撞。 接下来 n 行,每行包含两个整数 pi 和 vi,分别表示第 i 个小球的初始位置和速度。

输出描述

 如果会发生第 k 对碰撞,输出 “Yes”,并在下一行输出发生碰撞的时间,保留六位小数;如果不会发生第 k 对碰撞,输出 “No”。

示例输入

3 2
0 1
2 -1
4 1

示例输出

Yes
2.000000

解释:在这个例子中,第 1 和第 2 个小球在 t=1 时发生碰撞,第 2 和第 3 个小球在 t=2 时发生碰撞。因此,第 2 对碰撞发生的时间是 2 秒。

注意:由于实数的计算存在误差,当你的答案与标准答案的差的绝对值除以标准答案的绝对值的最大值不超过 10^-6 时,你的答案将被视为正确。


思路

把碰撞当相遇!!!

  1. 输入处理:读取小球的个数 n 和需要判断的碰撞次数 k,然后读取每个小球的初始位置和速度。

  2. 分类小球:根据小球的初始速度,将小球分为两组,一组向右运动,一组向左运动。

  3. 计算碰撞次数:对于每个向右运动的小球,计算它会在何时与每个向左运动的小球碰撞。我们可以通过比较它们的位置和速度来确定碰撞时间。

  4. 二分查找:由于碰撞时间随时间增加而单调增加,我们可以使用二分查找来确定第 k 次碰撞发生的时间。


代码

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n;
int a, b;
vector<int> c, d;
signed main()
{cin >> a >> b;for (int i = 0; i < a; i++){int e, f;cin >> e >> f;if (f == 1){c.push_back(e);}else{d.push_back(e);}}sort(c.begin(), c.end());sort(d.begin(), d.end());int g = 0;for (int q : c){auto it = upper_bound(d.begin(), d.end(), q);g += d.end() - it;}if (g < b){cout << "No" << "\n";return 0;}double l = 0, h = 1e17;double m;while (h - l > 1e-7){m = (l + h) / 2;int cnt = 0;for (int q : c){double qq = q + 2 * m;auto ww = upper_bound(d.begin(), d.end(), qq);cnt += ww - lower_bound(d.begin(), d.end(), q + 1);}if (cnt >= b){h = m;}else{l = m;}}cout << "Yes" << "\n";cout << fixed << setprecision(6) << h << "\n";return 0;
}

G 智乃与模数 

题目描述

 给定一个正整数 n,对于所有不大于 n 的正整数 i,计算 n 对 i 取余的结果,并将这些结果降序排序形成一个新的序列 a。现在,你需要计算这个序列 a 中前 k 项的和。

输入格式

 输入包含一行,有两个正整数 n 和 k,其中 1 ≤ k ≤ n ≤ 10^9。

输出格式

 输出一个整数,表示序列 a 中前 k 项的和。

示例输入

 10 5

示例输出

 12

解释: 当 n = 10 时,计算 n 对所有不大于 10 的正整数取余的结果,并降序排序得到的序列为 {4, 3, 2, 2, 1, 1, 0, 0, 0, 0}。序列中前 5 项的和为 4 + 3 + 2 + 2 + 1 = 12。

注意: 由于 n 的范围可能非常大,直接计算所有取余结果并排序可能会导致时间复杂度过高,因此需要考虑更高效的算法来解决这个问题。

思路

代码

#include <iostream>
#include <cmath>
#include <algorithm>
#define int long long
using namespace std;int n, k;void solve() {cin >> n >> k;int l = 0, r = 1e9 + 1, kc = 0, val = 0;while (l <= r) {int m = (l + r) >> 1;int cnt = 0;for (int i = 1, j; i <= n; i = j + 1) {j = n / (n / i);int a = n - i * (n / i);if (a < m) continue;cnt += min(j - i + 1, (a - m) / (n / i) + 1);}if (cnt >= k) l = m + 1;else {kc = cnt;val = m;r = m - 1;}}int ans = (k - kc) * (val - 1);for (int i = 1, j; i <= n; i = j + 1) {j = n / (n / i);int a = n - i * (n / i);int p = n / i;if (a < val) continue;int len = min((a - val) / p + 1, j - i + 1);ans += (2 * a - p * (len - 1)) * len / 2;}cout << ans << '\n';
}signed main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin >> t;while (t--) {solve();}return 0;
}

K 智乃的逆序数

思路

代码 

#include <bits/stdc++.h>
using namespace std;
int n, k;
vector<pair<int, int>> a;
vector<vector<int>> v;
int calc()
{int ret = 0;for (int i = 0; i < a.size(); ++i){for (int j = i + 1; j < a.size(); ++j){if (a[i] > a[j])++ret;}}return ret;
}void bsort()
{for (int i = 0; i < a.size(); ++i){for (int j = 0; j + 1 < a.size(); ++j){if (a[j].first == a[j + 1].first)continue;if (k > 0 && a[j].second < a[j + 1].second){swap(a[j], a[j + 1]);--k;}}}
}int main()
{scanf("%d %d", &n, &k);v.resize(n);for (int i = 0; i < n; ++i){int l;scanf("%d", &l);for (int j = 0; j < l; ++j){int x;scanf("%d", &x);v[i].push_back(x);}}sort(v.begin(), v.end(), [](const vector<int> &A, const vector<int> &B){return A[0] < B[0];});for (int i = 0; i < n; ++i){for (auto &j: v[i]){a.emplace_back(i, j);}}k -= calc();if (k < 0){printf("No");return 0;}bsort();if (k > 0){printf("No");return 0;}printf("Yes\n");for (int i = 0; i < a.size(); ++i){printf("%d%c", a[i].second, " \n"[i + 1 == a.size()]);}return 0;
}

D 智乃的Notepad(Hard version) 

 链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

示例1

输入

3 3 nowcoder nowdays now 1 3 1 2 3 3

3 3
nowcoder
nowdays
now
1 3
1 2
3 3

输出

16 16 3

16
16
3

示例2

输入

4 1 nowcoder nowdays days coder 1 4

4 1
nowcoder
nowdays
days
coder
1 4

输出

34

34

思路

 

代码

#include<bits/stdc++.h>
using namespace std;
// #define debug(x) cout<<"[debug]"#x<<"="<<x<<endl
typedef long long ll;
typedef long double ld;
typedef pair<int,int> pii;
const ld eps=1e-8;
const int INF=0x3f3f3f3f;
const ll INFF=0x3f3f3f3f3f3f3f3f;
#ifndef ONLINE_JUDGE
#define debug(...)
#include<debug>
#else
#define debug(...)
#endif
const int N=100005,M=1000006;
struct Node
{int l,r;int maxi;
}tr[4*N];
string s[N];
void pushup(Node &root,Node &left,Node &right)//Todo
{root.maxi=max(left.maxi,right.maxi);
}
void pushup(int u)
{pushup(tr[u],tr[u<<1],tr[u<<1|1]);
}
void build(int u,int l,int r)
{tr[u]={l,r};if(l==r)//Todo{tr[u].maxi=s[l].size();}else{int mid=l+r>>1;build(u<<1,l,mid);build(u<<1|1,mid+1,r);pushup(u);}
}
void modify(int u,int l,int r,int c)
{if(tr[u].l>=l&&tr[u].r<=r)//Todo{tr[u].maxi+=c;return ;}int mid=tr[u].l+tr[u].r>>1;if(l<=mid) modify(u<<1,l,r,c);if(r>mid) modify(u<<1|1,l,r,c);pushup(u);
}
Node query(int u,int l,int r)
{if(tr[u].l>=l&&tr[u].r<=r)//Todo{return tr[u];}int mid=tr[u].l+tr[u].r>>1;if(r<=mid) return query(u<<1,l,r);else if(l>mid) return query(u<<1|1,l,r);else{Node res;Node left=query(u<<1,l,r);Node right=query(u<<1|1,l,r);pushup(res,left,right);return res;}
}
typedef unsigned long long ull;
int qry_max[N];
int qry_num[N];
tuple<int,int,int> q[N];
int tr2[M];
int lowbit(int x)
{return x&-x;
}
int query(int x)
{int res=0;while(x){res+=tr2[x];x-=lowbit(x);}return res;
}
void add(int x,int c)
{while(x<M){tr2[x]+=c;x+=lowbit(x);}return ;
}
const int P=131;
int pos[M];
const ll mod=1e13+7;
int main()
{int n,m;scanf("%d%d",&n,&m);vector<pair<ull,char>> all;for(int i=1;i<=n;i++){cin>>s[i];ull hs=0;for(int j=0;j<s[i].size();j++){hs*=P;hs+=s[i][j]+j*100;all.push_back({hs,s[i][j]});}}sort(all.begin(),all.end());all.erase(unique(all.begin(),all.end()),all.end());build(1,1,n);for(int i=1;i<=m;i++){int l,r;scanf("%d%d",&l,&r);debug(l,r);q[i]={r,l,i};qry_max[i]=query(1,l,r).maxi;}sort(q+1,q+m+1);int idx=0;for(int i=1;i<=m;i++){auto [r,l,id]=q[i];while(idx<r){idx++;ll hs=0;for(int i=0;i<s[idx].size();i++){hs*=P;hs+=s[idx][i]+i*100;int x=(lower_bound(all.begin(),all.end(),(pair<ull,char>){hs,s[idx][i]})-all.begin())+1;if(pos[x]){add(pos[x],-1);}pos[x]=idx;add(pos[x],1);}}qry_num[id]=query(r)-query(l-1);}for(int i=1;i<=m;i++){debug(qry_num[i],qry_max[i]);int res=qry_num[i]*2-qry_max[i];printf("%d\n",res);}
}

 H 智乃与黑白树

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

示例1

输入

5 bwbwb 1 2 2 5 4 1 3 1

5
bwbwb
1 2
2 5
4 1
3 1

输出

3 1 6 0 0 4 0 6

3 1
6 0
0 4
0 6

思路

 

代码

#include<bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
struct dp_node
{long long dpb, dpw, sb, sw, val;
};
dp_node dp[MAXN];
void init_b(int root)
{memset(&dp[root], 0, sizeof(dp_node));dp[root].sb = 1;
}
void init_w(int root)
{memset(&dp[root], 0, sizeof(dp_node));dp[root].sw = 1;
}
void link(int root1, int root2)
{dp[root1].val += dp[root2].val +dp[root1].dpb * dp[root2].sw +dp[root1].dpw * dp[root2].sb +dp[root1].sw * (dp[root2].dpb + dp[root2].sb) +dp[root1].sb * (dp[root2].dpw + dp[root2].sw);dp[root1].dpw += dp[root2].dpw + dp[root2].sw;dp[root1].dpb += dp[root2].dpb + dp[root2].sb;dp[root1].sb += dp[root2].sb;dp[root1].sw += dp[root2].sw;}void cut(int root1, int root2)
{dp[root1].sw -= dp[root2].sw;dp[root1].sb -= dp[root2].sb;dp[root1].dpb -= dp[root2].dpb + dp[root2].sb;dp[root1].dpw -= dp[root2].dpw + dp[root2].sw;dp[root1].val -= dp[root2].val +dp[root1].dpb * dp[root2].sw +dp[root1].dpw * dp[root2].sb +dp[root1].sw * (dp[root2].dpb + dp[root2].sb) +dp[root1].sb * (dp[root2].dpw + dp[root2].sw);
}
vector<int> G[MAXN];
map<pair<int, int>, int> id;
int n;
pair<long long, long long> ans[MAXN];
char s[MAXN];void dfs(int x, int fa)
{if (s[x] == 'b')init_b(x);else init_w(x);for (auto &i: G[x]){if (i == fa)continue;dfs(i, x);link(x, i);}
}
void dfs2(int x, int fa)
{for (auto &i: G[x]){if (i == fa)continue;cut(x, i);if (id.find(make_pair(x, i)) != id.end()){ans[id[make_pair(x, i)]] = make_pair(dp[x].val, dp[i].val);}if (id.find(make_pair(i, x)) != id.end()){ans[id[make_pair(i, x)]] = make_pair(dp[i].val, dp[x].val);}link(i, x);dfs2(i, x);cut(i, x);link(x, i);}
}
int main()
{scanf("%d", &n);scanf("%s", s + 1);for (int i = 1; i < n; ++i){int u, v;scanf("%d %d", &u, &v);G[u].push_back(v);G[v].push_back(u);id[make_pair(u, v)] = i;}dfs(1, 0);dfs2(1, 0);for (int i = 1; i < n; ++i){printf("%lld %lld\n", ans[i].first, ans[i].second);}return 0;
}

 J 智乃画二叉树

 链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

输入描述


输出描述


示例1

输入

6 3 6 5 -1 -1 -1 2 1 3 -1 -1 -1 -1

6 3
6 5
-1 -1
-1 2
1 3
-1 -1
-1 -1

输出

************************ * __ * * /4 \ * * \__/ * * / \ * * / \ * * / \ * * __/ \__ * * /1 \ /3 \ * * \__/ \__/ * * __/ \__ \__ * */6 \ /5 \ /2 \* *\__/ \__/ \__/* ************************

************************
*          __          *
*         /4 \         *
*         \__/         *
*         /  \         *
*        /    \        *
*       /      \       *
*    __/        \__    *
*   /1 \        /3 \   *
*   \__/        \__/   *
* __/  \__         \__ *
*/6 \  /5 \        /2 \*
*\__/  \__/        \__/*
************************

思路

代码

#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const int N=3010;
char g[N][N];
int l[N],r[N];
int edge[110];
void solved(){int n,k;cin>>n>>k;memset(g,' ',sizeof g);int root=-1;map<int,int>mp;for(int i=1;i<=n;i++){int a,b;cin>>a>>b;l[i]=a;r[i]=b;mp[a]=mp[b]=1;}for(int i=1;i<=n;i++){if(!mp[i]){root=i;break;}}edge[0]=1;for(int i=1,dd=3;i<=9;i++){edge[i]=edge[i-1]+dd;dd*=2;}int nn=1000,mm=1000;auto drawNode=[&](int x,int y,int num){g[x-1][y]=g[x-1][y+1]='_';g[x][y-1]='/';if(num<10)g[x][y]=num+'0';else g[x][y+1]='0'+num%10,g[x][y]='0'+num/10;g[x][y+2]='\\';g[x+1][y-1]='\\';g[x+1][y+2]='/';g[x+1][y]=g[x+1][y+1]='_'; };auto dfs=[&](auto&self,int u,int x,int y,int depth)->void{if(u==-1)return;drawNode(x,y,u);if(l[u]!=-1){int xx=x+2,yy=y-1;for(int kk=0;kk<edge[depth];kk++){g[xx][yy]='/';xx++,yy--;}self(self,l[u],xx,yy-1,depth-1);}if(r[u]!=-1){int xx=x+2,yy=y+2;for(int kk=0;kk<edge[depth];kk++){g[xx][yy]='\\';xx++,yy++;}self(self,r[u],xx,yy,depth-1);}};dfs(dfs,root,1003,1003,k-2);int left=0,right=0,up=0,down=0;for(int i=0;i<N-1;i++){bool ok=false;for(int j=0;j<N-1;j++){if(g[j][i+1]!=' '){left=i;ok=true;break;}}if(ok)break;}for(int i=N-1;i>=1;i--){bool ok=false;for(int j=0;j<N-1;j++){if(g[j][i-1]!=' '){right=i;ok=true;break;}}if(ok)break;    }for(int i=0;i<N-1;i++){bool ok=false;for(int j=0;j<N-1;j++){if(g[i][j+1]!=' '){up=i;ok=true;break;}}if(ok)break;}for(int i=N-1;i>=1;i--){bool ok=false;for(int j=0;j<N-1;j++){if(g[i][j-1]!=' '){down=i;ok=true;break;}}if(ok)break;    }for(int i=1;i<N;i++)g[i][left]=g[i][right]=g[up-1][i]=g[down+1][i]='*';// cout<<left<<' '<<right<<"\n";for(int i=up-1;i<=down+1;i++){for(int j=left;j<=right;j++){cout<<g[i][j];}cout<<"\n";}}
signed main(){ios::sync_with_stdio(false);cin.tie(0);int T=1;// cin>>T;while(T--)solved();return 0;
}

 I 智乃的兔子跳

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

示例1

输入

9 1 2 3 4 5 6 7 8 9

9
1 2 3 4 5 6 7 8 9

输出

1 2

1 2

示例2

输入

5 10 80 17 73 1

5
10 80 17 73 1

输出

3 7

3 7

备注:

兔子一开始就在胡萝卜的坐标也能得到分数

思路

代码 

#include<bits/stdc++.h>
#define int long long
#define endl "\n"
const int MAXN = 1e5+10;
#define PII pair<int, int>
using namespace std;
void IOS(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
}
int n;
int a[MAXN];
inline int randint(int min, int max){random_device rd;mt19937 gen(rd());uniform_int_distribution<int>dis(min, max);return dis(gen);
}
int maxcnt;
void solve(int &p, int &k){int l = randint(1, n);int r = randint(1, n);while(l == r) r = randint(1, n);int t = abs(a[l] - a[r]);if(t == 1) return ;for(int i = 2; i * i <= t; i++){if(t % i == 0){while(t % i == 0) t /= i;int cnt = 0;for(int j = 1; j <= n; j++){if((a[l] - a[j]) % i == 0) cnt++;}if(cnt > maxcnt){maxcnt = cnt;p = a[l]%i;k = i;}}}if(t != 1){int cnt = 0;for(int j = 1; j <= n; j++){if((a[l] - a[j]) % t == 0) cnt++;}if(cnt > maxcnt){maxcnt = cnt;p = a[l]%t;k = t;}}
}
signed main(){IOS();cin>>n;for(int i = 1; i <= n; i++) cin>>a[i];int p = a[0], k = 2;if(n == 1){cout<<a[1]%2<<" "<<2<<endl;return 0;}int T = 100;while(T--){solve(p, k);}cout<<p<<" "<<k<<endl;
}

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

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

相关文章

Hive安装教程

Hive安装教程 文章目录 Hive安装教程写在前面安装下载安装部署安装Hive启动并使用Hive MySQL安装检查当前系统是否安装过MySQL安装初始化数据库 Hive元数据配置到MySQL拷贝驱动配置Metastore到MySQL再次启动Hive 写在前面 Linux版本&#xff1a;CentOS7.5Hive版本&#xff1a;…

大屏 UI 设计风格的未来趋势

在科技飞速革新的时代&#xff0c;大屏设备的应用领域不断拓展&#xff0c;从城市的智能交通指挥中心&#xff0c;到商场的互动广告大屏&#xff0c;再到家庭的超大尺寸智能电视&#xff0c;大屏已然成为信息展示与交互的关键载体。大屏 UI 设计风格也随之不断演变&#xff0c;…

元素的显示与隐藏

display显示隐藏visibility显示隐藏overflow溢出显示隐藏 display属性 visibility属性 overflow溢出

Unity游戏(Assault空对地打击)开发(1) 创建项目和选择插件

目录 前言 创建项目 插件导入 地形插件 前言 这是游戏开发第一篇&#xff0c;进行开发准备。 创作不易&#xff0c;欢迎支持。 我的编辑器布局是【Tall】&#xff0c;建议调整为该布局&#xff0c;如下。 创建项目 首先创建一个项目&#xff0c;过程略&#xff0c;名字请勿…

网络工程师 (7)进程管理

一、进程相关的概念 &#xff08;一&#xff09;定义 进程&#xff08;Process&#xff09;是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的基本单位&#xff0c;也是操作系统结构的基础。进程是程序的一次执行实例&#xff0c;具有动…

使用CSS实现一个加载的进度条

文章目录 使用CSS实现一个加载的进度条一、引言二、步骤一&#xff1a;HTML结构与CSS基础样式1、HTML结构2、CSS基础样式 三、步骤二&#xff1a;添加动画效果1、使用CSS动画2、结合JavaScript控制动画 四、使用示例五、总结 使用CSS实现一个加载的进度条 一、引言 在现代网页…

ios swift画中画技术尝试

继上篇&#xff1a;iOS swift 后台运行应用尝试失败-CSDN博客 为什么想到画中画&#xff0c;起初是看到后台模式里有一个picture in picture&#xff0c;去了解了后发现这个就是小窗口视频播放&#xff0c;方便用户执行多任务。看小窗口视频的同时&#xff0c;可以作其他的事情…

论文阅读(二):理解概率图模型的两个要点:关于推理和学习的知识

1.论文链接&#xff1a;Essentials to Understand Probabilistic Graphical Models: A Tutorial about Inference and Learning 摘要&#xff1a; 本章的目的是为没有概率图形模型背景或没有深入背景的科学家提供一个高级教程。对于更熟悉这些模型的读者&#xff0c;本章将作为…

【C++】特殊类设计

目录 一、请设计一个类&#xff0c;不能被拷贝二、请设计一个类&#xff0c;只能在堆上创建对象三、请设计一个类&#xff0c;只能在栈上创建对象四、请设计一个类&#xff0c;不能被继承五、请设计一个类&#xff0c;只能创建一个对象(单例模式)5.1 饿汉模式5.2 懒汉模式 结尾…

SSM开发(七) MyBatis解决实体类(model)的字段名和数据库表的列名不一致方法总结(四种方法)

目录 方法一: 使用@Results和@Result注解(注解方式) 方法二:修改 SQL 查询语句中的别名(注解方式) 方法三: 全局配置别名或结果映射(resultMap,XML配置方式) 方法四:使用@Column注解 在MyBatis中,如果你希望使用注解的方式来操作数据库,但又遇到实体类中的…

USB 3.1-GL3510-52芯片原理图设计

USB 3.1-GL3510-52芯片原理图设计 端口功能与兼容性物理层集成与性能电源相关特性充电功能其他特性原理图接口防护ESD 保护要求 GL3510-52是一款由Genesys Logic&#xff08;创惟科技&#xff09;研发的USB转换芯片&#xff0c;具有以下特点&#xff1a; 端口功能与兼容性 它…

LeetCode热题100中 17. 20. 53. 78. 215.

17.电话号码的字母组合&#xff1a; 题目描述&#xff1a; 实现思路&#xff1a; 将回溯过程抽象成树结构&#xff0c;每个叶子节点作为结果的一部分。 我们定义一个数组map&#xff0c;它的下标表示输入的数字所对应的字母&#xff0c;先对特殊情况进行处理&#xff1a;1.输…

高级编码参数

1.跳帧机制 参考资料&#xff1a;frameskipping-hotedgevideo 跳帧机制用于优化视频质量和编码效率。它通过选择性地跳过某些帧并使用参考帧来预测和重建视频内容&#xff0c;从而减少编码所需的比特率&#xff0c;同时保持较高的视频质量。在视频编码过程中&#xff0c;如果…

内网穿透实现MC联机

目录 内网穿透下载安装服务端&#xff08;你&#xff09;启动网络启动 MC 客户端&#xff08;你的朋友&#xff09; 放寒假了&#xff0c;想和同学玩mc&#xff0c;但是没有服务器怎么办呢&#xff1f;这就不得不提到内网穿透技术了。 注&#xff1a;本文参考视频&#xff1a;…

【每日一A】2015NOIP真题 (二分+贪心) python

题目概述 在起点和终点之间有n个石头&#xff0c;移除某些&#xff08;不超过m个&#xff09;石头后&#xff0c;让石头间的距离最大。 求石头间的最短距离d的最大值 跳石头 点此跳转 https://www.lanqiao.cn/problems/364/learning/?page1&first_category_id1&status…

获取snmp oid的小方法1(随手记)

snmpwalk遍历设备的mib # snmpwalk -v <SNMP version> -c <community-id> <IP> . snmpwalk -v 2c -c test 192.168.100.201 .根据获取的值&#xff0c;找到某一个想要的值的oid # SNMPv2-MIB::sysName.0 STRING: test1 [rootzabbix01 fonts]# snmpwalk -v…

FreeRTOS从入门到精通 第十四章(队列集)

参考教程&#xff1a;【正点原子】手把手教你学FreeRTOS实时系统_哔哩哔哩_bilibili 一、队列集简介 1、队列集概述 &#xff08;1&#xff09;一个队列只允许任务间传递的消息为同一种数据类型&#xff0c;如果需要在任务间传递不同数据类型的消息时&#xff0c;那么就可以…

Spring MVC 综合案例

目录 一. 加法计算器 1. 准备工作 2. 约定前后端交互接口 需求分析 接口定义 3. 服务器端代码 4. 运行测试 二. 用户登录 1. 准备工作 2. 约定前后端交互接口 需求分析 接口定义 (1) 登录界面接口 (2) 首页接口 3. 服务器端代码 4. 运行测试 三. 留言板 1. 准备…

Edge-TTS在广电系统中的语音合成技术的创新应用

Edge-TTS在广电系统中的语音合成技术的创新应用 作者&#xff1a;本人是一名县级融媒体中心的工程师&#xff0c;多年来一直坚持学习、提升自己。喜欢Python编程、人工智能、网络安全等多领域的技术。 摘要 随着人工智能技术的快速发展&#xff0c;文字转语音&#xff08;Te…

36、【OS】【Nuttx】OSTest分析(2):环境变量测试

背景 2025.1.29 蛇年快乐&#xff01; 接之前wiki 35、【OS】【Nuttx】OSTest分析&#xff08;1&#xff09;&#xff1a;stdio测试&#xff08;五&#xff09; 已经分析完了第一个测试项&#xff0c;输入输出端口测试&#xff0c;接下来分析下环境变量测试&#xff0c;也比较…