2024算法基础公选课练习七(BFS1)

一、前言

还是偏基础的bfs,但是有几个题不是很好写

二、题目总览

三、具体题目

3.1 问题 A: 数据结构-队列-奇怪的电梯

我的代码

可以看成求一维平面的bfs最短路

#include <bits/stdc++.h>
using i64 = long long;
using pii = std::pair<int,int>;
constexpr int N = 1e5+5,M = 1e6+5,INF = 0x3f3f3f3f;
std::vector<int> a(N,0);
std::vector<bool> vis(N,false);int n,st,ed;void bfs(){std::queue<pii> q;vis[st] = true;pii p;p.first = st,p.second = 0;q.emplace(p);while(!q.empty()){auto t = q.front();q.pop();if(t.first==ed){std::cout << t.second << '\n';return;}pii t1,t2;t1.first = t.first+a[t.first];t1.second = t.second+1;if(t1.first<=n&&!vis[t1.first]){vis[t1.first] = true;q.emplace(t1);}t2.first = t.first-a[t.first];t2.second = t.second+1;if(t2.first>=1&&!vis[t2.first]){vis[t2.first] = true;q.emplace(t2);}}std::cout << "-1\n";
}void solve(){std::cin >> n >> st >> ed;for(int i = 1;i<=n;++i) std::cin >> a[i];bfs();}
int main(){std::cin.tie(nullptr)->sync_with_stdio(false);int t = 1;// std::cin >> t;for(int ti = 0;ti<t;++ti) {solve();}return 0;
}

3.2 问题 B: 连通块

我的代码

找全是1的联通块个数,直接枚举每个点bfs(当前未访问过的点)即可

#include <bits/stdc++.h>
using i64 = long long;
using pii = std::pair<int,int>;
constexpr int N = 1e2+5,M = 1e6+5,INF = 0x3f3f3f3f;
int n,m;
int g[N][N];
bool vis[N][N];
int ans;
using node = std::array<int,3>;
int dx[] = {0,0,-1,1};
int dy[] = {-1,1,0,0};
void bfs(int sx,int sy){std::queue<node> q;node t;t[0] = sx,t[1] = sy,t[2] = 0;q.emplace(t);vis[sx][sy] = true;++ans;while(!q.empty()){auto t = q.front();q.pop();for(int i = 0;i<4;++i){int u = t[0]+dx[i],v = t[1]+dy[i];if(u<1||u>n||v<1||v>m||vis[u][v]||g[u][v]==0) continue;node t1;vis[u][v] = true;t1[0] = u,t1[1] = v,t1[2] = t[2]+1;q.emplace(t1);}}
}
void solve(){std::cin >> n >> m;for(int i = 1;i<=n;++i){for(int j = 1;j<=m;++j){std::cin >> g[i][j];}}for(int i = 1;i<=n;++i){for(int j = 1;j<=m;++j){if(!vis[i][j]&&g[i][j]==1){bfs(i,j);}}}std::cout << ans << '\n';
}
int main(){std::cin.tie(nullptr)->sync_with_stdio(false);int t = 1;// std::cin >> t;for(int ti = 0;ti<t;++ti) {solve();}return 0;
}

3.3 问题 C: 广搜——营救

我的代码

用char读图,不能用int,后续就是简单的求二维平面的bfs最短路

#include <bits/stdc++.h>
using i64 = long long;
using pii = std::pair<int,int>;
constexpr int N = 1e3+5,M = 1e6+5,INF = 0x3f3f3f3f;
int n;
char g[N][N];
bool vis[N][N];
int sx,sy,ex,ey;
using node = std::array<int,3>;
int dx[] = {0,0,-1,1};
int dy[] = {-1,1,0,0};void bfs(){std::queue<node> q;node tt;tt[0] = sx,tt[1] = sy,tt[2] = 0;q.emplace(tt);vis[sx][sy] = true;while(!q.empty()){auto t = q.front();q.pop();if(t[0]==ex&&t[1]==ey){std::cout << t[2] << '\n';return;}for(int i = 0;i<4;++i){int u = t[0]+dx[i],v = t[1]+dy[i];if(u<1||u>n||v<1||v>n||vis[u][v]||g[u][v]=='1') continue;vis[u][v] = true;node t1;t1[0] = u,t1[1] = v,t1[2] = t[2]+1;q.emplace(t1);}}
}
void solve(){std::cin >> n;for(int i = 1;i<=n;++i){for(int j = 1;j<=n;++j){std::cin >> g[i][j];}}std::cin >> sx >> sy >> ex >> ey;bfs();
}
int main(){std::cin.tie(nullptr)->sync_with_stdio(false);int t = 1;// std::cin >> t;for(int ti = 0;ti<t;++ti) {solve();}return 0;
}

3.4 问题 D: 迷宫的最短路径

我的代码

注意输出不要漏单词或者空格,其他没啥好说的

#include <bits/stdc++.h>
using i64 = long long;
using pii = std::pair<int,int>;
constexpr int N = 1e3+5,M = 1e6+5,INF = 0x3f3f3f3f;
int n,m;
char g[N][N];
bool vis[N][N];
int sx,sy,ex,ey;
int dx[] = {0,0,-1,1};
int dy[] = {-1,1,0,0};
using node = std::array<int,3>;void bfs(){std::queue<node> q;node tt;tt[0] = sx,tt[1] = sy,tt[2] = 0;q.emplace(tt);vis[sx][sy] = true;while(!q.empty()){auto t = q.front();q.pop();if(t[0]==ex&&t[1]==ey){std::cout << "The min steps are:" << t[2] << "!\n";return;}for(int i = 0;i<4;++i){int u = t[0]+dx[i],v = t[1]+dy[i];if(u<1||u>n||v<1||v>m||vis[u][v]||g[u][v]=='#') continue;vis[u][v] = true;node t1;t1[0] = u,t1[1] = v,t1[2] = t[2]+1;q.emplace(t1);}}std::cout << "sorry!\n";
}void solve(){std::cin >> n >> m;for(int i = 1;i<=n;++i){for(int j = 1;j<=m;++j){std::cin >> g[i][j];if(g[i][j]=='S'){sx=i,sy=j;}else if(g[i][j]=='G'){ex=i,ey=j;}}}bfs();
}
int main(){std::cin.tie(nullptr)->sync_with_stdio(false);int t = 1;// std::cin >> t;for(int ti = 0;ti<t;++ti) {solve();}return 0;
}

3.5 问题 E: 象棋中的马之进阶

我的代码

求八方向二维平面最短路的bfs

#include <bits/stdc++.h>
using i64 = long long;
using pii = std::pair<int,int>;
constexpr int N = 1e3+5,M = 1e6+5,INF = 0x3f3f3f3f;
bool vis[N][N];
int sx,sy,ex,ey;
int dx[] = {-2,-1,1,2,2,1,-1,-2};
int dy[] = {1,2,2,1,-1,-2,-2,-1};
using node = std::array<int,3>;void bfs(){std::queue<node> q;node tt;tt[0] = sx,tt[1] = sy,tt[2] = 0;q.emplace(tt);vis[sx][sy] = true;while(!q.empty()){auto t = q.front();q.pop();if(t[0]==ex&&t[1]==ey){std::cout << t[2] << '\n';return;}for(int i = 0;i<8;++i){int u = t[0]+dx[i],v = t[1]+dy[i];if(u<1||u>9||v<1||v>10||vis[u][v]) continue;vis[u][v] = true;node t1;t1[0] = u,t1[1] = v,t1[2] = t[2]+1;q.emplace(t1);}}std::cout << 0 << '\n';
}
void solve(){std::cin >> sx >> sy >> ex >> ey;bfs();
}
int main(){std::cin.tie(nullptr)->sync_with_stdio(false);int t = 1;// std::cin >> t;for(int ti = 0;ti<t;++ti) {solve();}return 0;
}

3.6 问题 F: 搜索——我的世界

我的代码

求三维空间最短路的bfs

#include <bits/stdc++.h>
using i64 = long long;
using pii = std::pair<int,int>;
constexpr int N = 1e2+5,M = 1e6+5,INF = 0x3f3f3f3f;int k,n,m;
char g[N][N][N];
bool vis[N][N][N];
int dx[] = {0,0,-1,1,0,0};
int dy[] = {-1,1,0,0,0,0};
int dz[] = {0,0,0,0,1,-1};
using node = std::array<int,4>;
int sx,sy,sz,ex,ey,ez;
void bfs(){std::queue<node> q;node tt;tt[0] = sz,tt[1] = sx,tt[2] = sy,tt[3] = 0;q.emplace(tt);vis[sx][sy][sz] = true;while(!q.empty()){auto t = q.front();q.pop();if(t[0]==ez&&t[1]==ex&&t[2]==ey){std::cout << t[3] << '\n';return;}for(int i = 0;i<6;++i){int u = t[0]+dz[i],v = t[1]+dx[i],w = t[2]+dy[i];if(u<1||u>k||v<1||v>n||w<1||w>m||vis[u][v][w]||g[u][v][w]=='^') continue;vis[u][v][w] = true;node t1;t1[0] = u,t1[1] = v,t1[2] = w,t1[3] = t[3]+1;q.emplace(t1);}}std::cout << 2333333 << '\n';
}
void solve(){std::cin >> k >> n >> m;for(int i = 1;i<=k;++i){for(int j = 1;j<=n;++j){for(int l = 1;l<=m;++l){std::cin >> g[i][j][l];if(g[i][j][l]=='S'){sx=j,sy=l,sz=i;}else if(g[i][j][l]=='E'){ex=j,ey=l,ez=i;}}}}bfs();
}
int main(){std::cin.tie(nullptr)->sync_with_stdio(false);int t = 1;// std::cin >> t;for(int ti = 0;ti<t;++ti) {solve();}return 0;
}

3.7 问题 G: 最小倍数

我的代码

不会爆long long,思路见代码

#include <bits/stdc++.h>
using i64 = long long;
using pii = std::pair<int,int>;
constexpr int N = 1e5+5,M = 1e6+5,INF = 0x3f3f3f3f;
i64 n;void bfs(){std::queue<i64> q;q.emplace(1);while(!q.empty()){auto t = q.front();q.pop();if(t%n==0){std::cout << t << '\n';return;}q.emplace(t*10);q.emplace(t*10+1);}
}
void solve(){while(std::cin >> n){if(n==0) break;bfs();}
}
int main(){std::cin.tie(nullptr)->sync_with_stdio(false);int t = 1;// std::cin >> t;for(int ti = 0;ti<t;++ti) {solve();}return 0;
}

3.8 问题 H: 01组成的N的倍数

我的代码

会爆long long和unsigned long long,而且用高精度也会超时,时间复杂度卡得有点死,只能用string

#include <bits/stdc++.h> 
using namespace std;
using i64 = long long;
constexpr int N=1e6+5;
struct node{string str;i64 sum;
} now,temp;
queue<node> q;
int vis[N];
int n;
void bfs(){queue<node> q;memset(vis,0,sizeof(vis));now.str="1";now.sum=1%n;vis[now.sum]=1;q.push(now);while(!q.empty()){now=q.front();q.pop();if(now.sum==0){cout << now.str << endl;break;}temp.str=now.str+'0';temp.sum=(now.sum*10)%n;if(vis[temp.sum]==0){vis[temp.sum]=1;q.push(temp);}temp.str=now.str+'1';temp.sum=(now.sum*10+1)%n;if(vis[temp.sum]==0){vis[temp.sum]=1;q.push(temp);}}
}
int main(){while(~scanf("%d",&n)){bfs();}return 0;
}

3.9 问题 I: 新迷宫探险

我的代码

注意多组数据,写法跟前面的求二维平面最短路的bfs一样

#include <bits/stdc++.h>
using i64 = long long;
using pii = std::pair<int,int>;
constexpr int N = 1e2+5,M = 1e6+5,INF = 0x3f3f3f3f;
int n;
char g[N][N];
bool vis[N][N];
int sx,sy,ex,ey;
int dx[] = {0,0,-1,1};
int dy[] = {-1,1,0,0};
using node = std::array<int,3>;
void bfs(){std::queue<node> q;node tt;tt[0] = sx,tt[1] = sy,tt[2] = 0;vis[sx][sy] = true;q.emplace(tt);while(!q.empty()){auto t = q.front();q.pop();if(t[0]==ex&&t[1]==ey){std::cout << t[2] << '\n';return;}for(int i = 0;i<4;++i){int u = t[0]+dx[i],v = t[1]+dy[i];if(u<1||u>n||v<1||v>n||vis[u][v]||g[u][v]=='#') continue;vis[u][v] = true;node t1;t1[0] = u,t1[1] = v,t1[2] = t[2]+1;q.emplace(t1);}}std::cout << -1 << '\n';
}
void solve(){while(std::cin >> n){for(int i = 1;i<=n;++i){for(int j = 1;j<=n;++j){std::cin >> g[i][j];}}memset(vis,false,sizeof vis);sx = 1,sy = 1,ex = n,ey = n;bfs();}
}
int main(){std::cin.tie(nullptr)->sync_with_stdio(false);int t = 1;// std::cin >> t;for(int ti = 0;ti<t;++ti) {solve();}return 0;
}

3.10 问题 J: 山峰和山谷

我的代码

枚举每个没有访问过的点,bfs看是否能够形成山峰或者山谷

#include <bits/stdc++.h>
using i64 = long long;
using pii = std::pair<int,int>;
constexpr int N = 1e3+5,M = 1e6+5,INF = 0x3f3f3f3f;
int n;
int g[N][N];
bool vis[N][N];
int ans1,ans2;
int dx[] = {0,0,-1,1,-1,1,1,-1};
int dy[] = {-1,1,0,0,1,1,-1,-1};using node = std::array<int,2>;void bfs(int i,int j){std::queue<node> q;node tt;tt[0] = i,tt[1] = j;q.emplace(tt);vis[i][j] = true;bool flag1 = false,flag2 = false;int cnt = 1;while(!q.empty()){auto t = q.front();q.pop();for(int i = 0;i<8;++i){int u = t[0]+dx[i],v = t[1]+dy[i];if(u<1||u>n||v<1||v>n||(vis[u][v]&&g[u][v]==g[t[0]][t[1]])) continue;if(g[u][v]<g[t[0]][t[1]]) flag1=true;else if(g[u][v]>g[t[0]][t[1]]) flag2=true;else{++cnt;vis[u][v] = true;node t1;t1[0] = u,t1[1] = v;q.emplace(t1);}}}if(flag1&&flag2) return;if(flag1) ++ans1;else if(flag2) ++ans2;if(cnt==n*n) ++ans1,++ans2;
}
void solve(){std::cin >> n;for(int i = 1;i<=n;++i){for(int j = 1;j<=n;++j){std::cin >> g[i][j];}}for(int i = 1;i<=n;++i){for(int j = 1;j<=n;++j){if(!vis[i][j]){bfs(i,j);}}}std::cout << ans1 << ' ' << ans2 << '\n';
}
int main(){std::cin.tie(nullptr)->sync_with_stdio(false);int t = 1;// std::cin >> t;for(int ti = 0;ti<t;++ti) {solve();}return 0;
}

3.11 问题 K: 兔兔之漂亮图

我的代码

这题看代码吧,暂时不知道要怎么说清楚这个思路

#include <bits/stdc++.h>
using i64 = long long;
using pii = std::pair<int,int>;
constexpr int N = 3e5+5,M = 1e6+5,INF = 0x3f3f3f3f;
constexpr int P = 998244353;i64 power(i64 a, i64 b) {i64 res = 1;for (; b; b /= 2, a = a*a%P) {if (b % 2) {res = res*a%P;}}return res;
}std::vector<std::vector<int>> edges(N,std::vector<int>());
std::vector<int> a(N,0);
int n,m;
i64 ans;
std::queue<int> q;
i64 t = 2;void bfs(){for(int i = 1;i<=n;++i){if(a[i]!=0) continue;a[i] = 1;i64 cnt1 = 1,cnt2 = 0;q.emplace(i);while(!q.empty()){auto u = q.front();q.pop();for(auto v:edges[u]){if(a[v]==0){a[v] = 3-a[u];if(a[v]==1) cnt1+=1;else cnt2+=1;q.emplace(v);}else if(a[u]+a[v]!=3){ans = 0;break;}}}if(ans==0) break;//power(2,cnt)ans=ans*((power(t,cnt1)%P+power(t,cnt2)%P)%P)%P;}}
void solve(){std::cin >> n >> m;for(int i = 1;i<=n;++i){edges[i].clear();a[i] = 0;}ans = 1;while(m--){int u,v;std::cin >> u >> v;edges[u].emplace_back(v);edges[v].emplace_back(u);}bfs();std::cout << ans << '\n';
}
int main(){std::cin.tie(nullptr)->sync_with_stdio(false);int t = 1;std::cin >> t;for(int ti = 0;ti<t;++ti) {solve();}return 0;
}

3.12 问题 L: 兔兔的导航系统

我的代码

原题:

2024算法基础公选课练习三(DFS1)的L题

#include <bits/stdc++.h>
using i64 = long long;
using pii = std::pair<int,int>;
constexpr int N = 2e5+5,M = 1e6+5,INF = 0x3f3f3f3f;int n,m,k;
std::vector<std::vector<int>> edges(N,std::vector<int>());
std::vector<std::vector<int>> reverse_edges(N,std::vector<int>());
std::vector<bool> vis(N,false);
std::vector<int> dist(N,INF);
std::vector<int> p(N,0);
int st,ed;
int maxn=0,minn=0;
void bfs() {std::queue<int> q;vis[st] = true;dist[st] = 0;q.emplace(st);while(!q.empty()) {auto t = q.front();q.pop();for(int i = 0;i<reverse_edges[t].size();++i) {int to = reverse_edges[t][i];if(vis[to]) continue;vis[to] = true;dist[to] = dist[t]+1;q.emplace(to);}}
}void solve(){std::cin >> n >> m;while(m--){int u,v;std::cin >> u >> v;edges[u].emplace_back(v);reverse_edges[v].emplace_back(u);}std::cin >> k;for(int i = 1;i<=k;++i) std::cin >> p[i];st = p[1],ed = p[k];bfs();for(int i = 1;i<=k-1;++i) {int u = p[i],v = p[i+1];bool flag = false;//用于判断是否当前u->v是最短路for(int j = 0;j<edges[u].size();++j) {int w = edges[u][j];if(dist[w]==dist[u]-1) {if(v==w) {flag = true;}else {++maxn;}}}if(!flag) ++minn,++maxn;}std::cout << minn << ' ' << maxn << '\n';
}
int main(){std::cin.tie(nullptr)->sync_with_stdio(false);int t = 1;// std::cin >> t;for(int ti = 0;ti<t;++ti) {solve();}return 0;
}

3.13 问题 M: 龙哥的换根树

我的代码

bfs两次,然后换根dp

#include <bits/stdc++.h>
using i64 = long long;
using pii = std::pair<int,int>;
constexpr int N = 2e5+5,M = 1e6+5,INF = 0x3f3f3f3f;
i64 n,k,c;
void bfs(int root,std::vector<std::vector<int>> &edges,std::vector<bool> &vis,std::vector<i64> &dist){std::queue<int> q;vis[root] = true;q.emplace(root);dist[root] = 0;while(!q.empty()){auto u = q.front();q.pop();for(auto &v:edges[u]){if(vis[v]) continue;vis[v] = true;dist[v] = dist[u]+1;q.emplace(v);}}
}
void solve(){std::cin >> n >> k >> c;std::vector<std::vector<int>> edges(n+5,std::vector<int>());std::vector<bool> vis(n+5,false);std::vector<i64> dist(n+5,INF);//vector建边for(int i = 1;i<=n-1;++i){int u,v;std::cin >> u >> v;edges[u].emplace_back(v);edges[v].emplace_back(u);}i64 ans=0,max=0,tmp=0,leaf=1;bfs(1,edges,vis,dist);//拷贝dist数组留用std::vector<i64> prev_dist(n+5);std::copy(dist.begin(),dist.end(),prev_dist.begin());//找到最远的叶子结点leaf和这个最远距离maxfor(int i = 1;i<=n;++i){if(dist[i]>max){max = dist[i];leaf = i;}}//初始化for(int i = 1;i<=n;++i){vis[i] = false;dist[i] = INF;}//以这个叶子结点为根进行bfsbfs(leaf,edges,vis,dist);//枚举换根到每个点最大价值for(int i = 1;i<=n;++i){ans = std::max(ans,dist[i]*k-prev_dist[i]*c);}std::cout << ans << '\n';
}
int main(){std::cin.tie(nullptr)->sync_with_stdio(false);int t = 1;std::cin >> t;for(int ti = 0;ti<t;++ti) {solve();}return 0;
}

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

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

相关文章

富格林:可信策略阻挠交易受损

富格林指出&#xff0c;阻挠交易受损最重要的一个步骤就是要不断地总结误区采取可信策略进行操作。投资误区有很多种&#xff0c;投资者需要不断总结和丰富可信经验来提升自己。以下是富格林总结的几点需要防备的误区&#xff0c;这样才能够在有效避免阻挠交易受损。 始终坚持…

探索.NET世界的无限可能——带你轻松了解.NET

前言 由于目前用到的技术栈有C#&#xff0c;而学习C#离不开.NET框架&#xff0c;正如学习Java离不开学习Spring框架一样。 .NET是微软开发的一个非常强大的框架&#xff0c;它不仅擅长桌面和移动开发&#xff0c;而且还能够支持Web开发和游戏引擎开发&#xff0c;在现在热门的…

Android --- Kotlin,Fragment 怎么使用 ObserveForever 监听 Livedata

Android — Kotlin&#xff0c;Fragment 怎么使用 ObserveForever 监听 Livedata 在 Kotlin 中&#xff0c;observeForever() 是 LiveData 提供的一个方法&#xff0c;它用于永久地观察 LiveData 对象的数据变化&#xff0c;不依赖于生命周期的管理。这通常在不依赖 Fragment …

HTTP 缓存技术

HTTP 缓存技术 1. 缓存概述 HTTP 缓存技术通过存储已请求资源的副本&#xff0c;减少重复请求、提升响应速度&#xff0c;并节省带宽。缓存可以在客户端、代理服务器、CDN&#xff08;内容分发网络&#xff09;等位置进行&#xff0c;能够有效提升 Web 应用的性能、降低服务器…

[OpenHarmony5.0][Docker][环境]OpenHarmony5.0 Docker pull线上镜像方式构建编译环境

T. 已测试目录 主机类型主机版本Docker镜像版本结果WSL2Ubuntu22.04Ubuntu20.04PASSWSL2Ubuntu22.04Ubuntu18.04PASS R. 软硬件要求&#xff1a; 硬件&#xff1a; 设备容量备注硬盘>500G多版本系统测试&#xff0c;必须固态&#xff0c;否则编译卡死硬盘>300G单系统…

Accessibility API

开发类似Grammarly的桌面级应用程序&#xff0c;需要将自然语言处理 (NLP)、桌面应用开发和系统交互技术结合起来。以下是完整的开发步骤和关键技术的详细说明&#xff1a; 1. 确定核心功能 一个类似于Grammarly的应用程序主要提供以下功能&#xff1a; 实时语法和拼写检查&a…

RHCE——SELinux

SELinux 什么是SELinux呢&#xff1f;其实它是【Security-Enhanced Linux】的英文缩写&#xff0c;字母上的意思就是安全强化Linux的意思。 SELinux是由美国国家安全局(NSA)开发的&#xff0c;当初开发的原因是很多企业发现&#xff0c;系统出现问题的原因大部分都在于【内部…

如何分析Windows防火墙日志

Windows防火墙&#xff0c;也被称为Windows Defender Firewall&#xff0c;是一种内置的安全功能&#xff0c;可以主动监控和分析运行Windows操作系统的计算机上通过Windows防火墙的网络流量&#xff0c;主要目的是作为计算机和互联网或其他网络之间的屏障&#xff0c;使管理员…

Python - 函数(四)

函数&#xff1a;在编写程序的过程中&#xff0c;有某一功能代码块出现多次&#xff0c; 但是为了提高编写的效率以及代码的重用&#xff0c;所以把具有独立功能的代码块组织为一个小模块&#xff0c;这就是函数 ‌Python中的函数‌是一组被命名的可执行代码&#xff0c;用于完…

2024-11-27 学习人工智能的Day32 神经网络与反向传播

一、神经网络 神经网络神经网络&#xff08;Neural Networks&#xff09;是一种模拟人脑神经元网络结构的计算模型&#xff0c;用于处理复杂的模式识别、分类和预测等任务。 人工神经元是神经网络的基础构建单元&#xff0c;模仿了神武神经元的工作原理&#xff0c;核心功能是…

代码随想录打卡DAY21

算法记录第21天 [二叉树] 1.LeetCode 538. 把二叉搜索树转换为累加树 题目描述&#xff1a; 给出二叉 搜索 树的根节点&#xff0c;该树的节点值各不相同&#xff0c;请你将其转换为累加树&#xff08;Greater Sum Tree&#xff09;&#xff0c;使每个节点 node 的新值等于原…

[在线实验]-ActiveMQ Docker镜像的下载与部署

镜像下载 下载ActiveMQ的Docker镜像文件。通常&#xff0c;这些文件会以.tar格式提供&#xff0c;例如activemq.tar。 docker的activemq镜像资源-CSDN文库 加载镜像 下载完成后&#xff0c;您可以使用以下命令将镜像文件加载到Docker中&#xff1a; docker load --input a…

k8s 架构详解

Kubernetes&#xff08;通常简称为K8s&#xff09;是一个开源的容器编排平台&#xff0c;它帮助自动化部署、扩展和管理容器化应用程序。Kubernetes架构设计得非常灵活且可扩展&#xff0c;能够支持从小规模到大规模的各种应用部署需求。下面是对Kubernetes架构的详细解释&…

并发编程2.0

9.创建线程有哪几种方式&#xff1f; 继承Thread类&#xff0c;通过重写run方法来定义线程的执行逻辑 class MyThread extends Thread {Overridepublic void run() {System.out.println("线程执行的代码");} } public class Main {public static void main(String[…

一个比较舒服的 prettier 前端配置 vue js

1. 安装 prettier 库 npm i -D prettier2. 配置 package.json "format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,vue,scss,css}\""3. 根目录下放这两个文件 .prettierrc {"semi": true,"singleQuote": true,&quo…

VTK中对于相机camera的设置

1. 相机的核心属性 在 VTK 中&#xff0c;vtkCamera 的核心属性有默认值。如果你不设置这些属性&#xff0c;相机会使用默认值来渲染场景。 Position&#xff08;默认值&#xff1a;(0, 0, 1)&#xff09;&#xff1a; 默认情况下&#xff0c;相机位于 Z 轴正方向的 (0, 0, 1)…

学习日志017--python的几种排序算法

冒泡排序 def bubble_sort(alist):i 0while i<len(alist):j0while j<len(alist)-1:if alist[j]>alist[j1]:alist[j],alist[j1] alist[j1],alist[j]j1i1l [2,4,6,8,0,1,3,5,7,9] bubble_sort(l) print(l) 选择排序 def select_sort(alist):i 0while i<len(al…

活着就好20241128

早晨问候&#xff1a; 亲爱的朋友们&#xff0c;大家早上好&#xff01;今天是2024年11月28日&#xff0c;第48周的第四天&#xff0c;也是十一月的第二十八天&#xff0c;农历甲辰[龙]年十月廿四。在这个即将步入月末、阳光依旧明媚的清晨&#xff0c;愿第一缕阳光轻轻洒落在…

超高流量多级缓存架构设计!

文章内容已经收录在《面试进阶之路》&#xff0c;从原理出发&#xff0c;直击面试难点&#xff0c;实现更高维度的降维打击&#xff01; 文章目录 电商-多级缓存架构设计多级缓存架构介绍多级缓存请求流程负载均衡算法的选择轮询负载均衡一致性哈希负载均衡算法选择 应用层 Ngi…

3D Gaussian Splatting综述 论文笔记

文章目录 参考资料 参考资料 A Survey on 3D Gaussian Splatting精读 3DGaussianSplatting技术的影响会有多大&#xff1f; - Kedreamix的回答 - 知乎 https://www.zhihu.com/question/626506306/answer/3375816824 3DGS综述《A Survey on 3D Gaussian Splatting》 【论文笔记…