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

吉林大学23级数据结构上机实验(第7周)

A 去火车站

寒假到了,小明准备坐火车回老家,现在他从学校出发去火车站,CC市去火车站有两种方式:轻轨和公交车。小明为了省钱,准备主要以乘坐公交为主。CC市还有一项优惠政策,持学生证可以免费乘坐一站轻轨(但只能乘坐一站)。小明想尽快到达火车站,请编写程序为小明找到一条从学校到火车站最快的路线及换乘轻轨的方案。

假设换乘时间忽略不计,公交车与轻轨站点相同,但线路和速度不一定相同,所有线路都是双向的。可以第一站就乘坐轻轨,也可以最后一站乘坐轻轨,也可以在中间某站坐轻轨。如果乘坐轻轨和不乘坐轻轨到达火车站的时间相同,则无需换乘轻轨。最多坐一站轻轨。

输入格式:

输入包含多组数据。每组数据第一行为3个整数n、s和t,分别表示车站数(编号为1至n),小明学校所在的站和火车站所在的站。下一行为一个整数m,表示公交车的线路信息,接下来m行,每行为3个正整数a、b、c,表示公交车从a站到b站需要c分钟。下一行为一个整数k,表示轻轨的线路信息,接下来k行,每行为3个正整数x、y、z,表示轻轨从x站到y站需要z分钟。所有整数均不超过20000。

输出格式:

对每组数据输出2行。第1行为1个整数T,表示从学校到达火车站的最短时间;第2行为一个整数K,表示在站点K换乘轻轨,若有多个可能的换乘点,则输出编号最小者,如果无需换乘轻轨,则第二行输出“no metro”。

输入样例:

4 1 4
4
1 2 2
1 3 3
2 4 4
3 4 5
1
2 4 3
4 1 4
4
1 2 2
1 3 3
2 4 4
3 4 5
1
2 4 3

输出样例:

5
2
5
2

 思路:

这里给出两种做法,第一种就是老师题解的思路,正反跑一遍,然后一一比较大小差异。。

我们可以思考一下假设不是走1条轻轨,而是k条轻轨,这道题该怎么做。写题稍微多一点的朋友肯定知道k条边限制的题一般都是用分层图最短路去写,感兴趣的朋友可以去看看我写的另一篇博文分层图最短路,感觉有点像拆点,也有点像dp。。

法一:

#include<bits/stdc++.h>
using namespace std;
const int N = 20010;
typedef pair<int, int>PII;
int h[2*N], e[2*N], w[2*N], ne[2*N], idx;
int dis1[N], dis2[N];
bool st1[N], st2[N];
bool flag;
int ans, cnt;
int n, m, k, s, t;
void init()
{ans = 0x3f3f3f3f;cnt = 0x3f3f3f3f;flag = 1;idx = 0;memset(st1, false, sizeof st1);memset(dis1, 0x3f, sizeof dis1);memset(dis2, 0x3f, sizeof dis2);memset(st2, false, sizeof st2);memset(h, -1, sizeof h);memset(e, 0, sizeof e);memset(w, 0, sizeof w);memset(ne, 0, sizeof ne);
}
void add(int a, int b, int c) {e[idx] = b, w[idx] = c, ne[idx] = h[a], h[a] = idx++;
}
void dijkstral(int u,int dis[],bool st[]) {priority_queue<PII, vector<PII>, greater<PII>>q;q.push({ 0,u });dis[u] = 0;while (q.size()) {auto p = q.top();q.pop();int v = p.second;if (st[v]) {continue;}st[v] = true;for (int i = h[v];~i;i = ne[i]) {int j = e[i];if (st[j]) {continue;}if (dis[j] > dis[v] + w[i]) {dis[j] = dis[v] + w[i];q.push({ dis[j],j});}}}
}
void solve()
{while (cin >> n >> s >> t) {init();cin >> m;for (int i = 1;i <= m;i++) {int a, b, c;cin >> a >> b >> c;add(a, b, c);add(b, a, c);}dijkstral(s,dis1,st1);dijkstral(t, dis2, st2);ans = dis1[t];cin >> k;for (int i = 1;i <= k;i++) {int a, b, c;cin >> a >> b >> c;if (dis1[a] + c + dis2[b] < ans) {flag = 0;ans =  dis1[a] + c + dis2[b];cnt = a;}else if (dis1[a] + c + dis2[b] == ans) {cnt = min(a, cnt);}if (dis1[b] + c + dis2[a] < ans) {flag = 0;ans = dis1[b] + c + dis2[a];cnt = b;}else if (dis1[b] + c + dis2[a] == ans) {cnt = min(cnt, b);}}if (flag) {cout << dis1[t] << endl;cout << "no metro" << endl;}else {cout << ans << endl;cout << cnt << endl;}}
}
int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);solve();return 0;
}

法二:

#include<bits/stdc++.h>
using namespace std;
const int N = 20010, M = 40010;
typedef pair<int, pair<int, int>>PII;
int h[N], e[M], ne[M], w[M], idx;
int h2[N], e2[M], ne2[M], w2[M], idx2;
int dis[N][2];
bool st[N][2];
int cnt[N];
int n, m, k, s, t;
int ans;
int f;
void add(int a, int b, int c) {e[idx] = b, w[idx] = c, ne[idx] = h[a], h[a] = idx++;
}
void add2(int a, int b, int c) {e2[idx2] = b, w2[idx2] = c, ne2[idx2] = h2[a], h2[a] = idx2++;
}
void dij()
{memset(dis, 0x3f, sizeof dis);memset(st, false, sizeof st);priority_queue<PII, vector<PII>, greater<PII>>q;q.push({ 0,{s,0} });dis[s][0] = 0;while (q.size()) {auto p = q.top();q.pop();int v = p.second.first;int u = p.second.second;if (st[v][u]) {continue;}st[v][u] = true;for (int i = h[v];~i;i = ne[i]) {int j = e[i];if (st[j][u]) {continue;}if (dis[j][u] > dis[v][u] + w[i]) {if (u == 1) {cnt[j] = cnt[v];}dis[j][u] = dis[v][u] + w[i];q.push({ dis[j][u],{j,u} });}}if (u + 1 <= 1) {for (int i = h2[v];~i;i = ne2[i]) {int j = e2[i];if (st[j][u + 1]) {continue;}if (dis[j][u + 1] > dis[v][u] + w2[i]) {dis[j][u + 1] = dis[v][u] + w2[i];cnt[j] = v;q.push({ dis[j][u + 1],{j,u + 1} });}else if (dis[j][u + 1] == dis[v][u] + w2[i]) {cnt[j] = min(cnt[j], v);//q.push({ dis[j][u + 1],{j,u + 1} });}}}}
}
void solve()
{while (cin >> n >> s >> t) {idx = 0;idx2 = 0;f = 0x3f3f3f3f;ans = 0x3f3f3f3f;memset(cnt, 0x3f, sizeof cnt);memset(e, 0, sizeof e);memset(ne, 0, sizeof ne);memset(w, 0, sizeof w);memset(h, -1, sizeof h);memset(e2, 0, sizeof e2);memset(ne2, 0, sizeof ne2);memset(w2, 0, sizeof w2);memset(h2, -1, sizeof h2);cin >> m;for (int i = 1;i <= m;i++) {int a, b, c;cin >> a >> b >> c;add(a, b, c);add(b, a, c);}cin >> k;for (int i = 1;i <= k;i++) {int a, b, c;cin >> a >> b >> c;add2(a, b, c);}dij();if (dis[t][0] <= dis[t][1]) {cout << dis[t][0] << endl;cout << "no metro" << endl;}else {cout << dis[t][1] << endl;cout << cnt[t] << endl;}}}
int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);solve();return 0;
}

 

 B 联盟数目

艾迪是一家集团公司的老板,该集团包含n家公司,为了管理公司,艾迪会时常通过网络向各公司发送消息。各公司间的网络是单向的,每个公司都有一个分发列表,表示其能向哪些公司直接传达消息。例如A公司的分发列表为B、C,表示A可将消息直接传送给B和C(由于网络是单向的,B或C不一定能向A传送消息),这样艾迪若想向A、B、C公司发送消息,则只需向A发送消息即可,随后A可将消息传送到B和C。

为了便于管理各公司,艾迪打算将n家公司分成若干组,每组称为一个区域联盟,每组满足如下条件:组内的任意公司消息互相可达。即对于组内任意公司u和v,u可将消息传送到v(可由u直接传送到v,也可通过组内其他公司中转传送到v),v也可将消息传送到u。可以认为一个公司可以将消息传送给自己,即一个公司可以自成一组。

艾迪希望组的数量尽可能少,即在满足上述条件的情况下,每组包含的公司数目尽可能多。

现给定每个公司的分发列表,请编写程序告知艾迪,他的集团最少能分成多少组。

输入格式:

第一行包含一个整数T (1≤T≤100)表示数据组数。对于每组数据,第一行为一个整数n (2≤n≤100),表示公司数目,公司编号为1到n。随后n行,第i行包含若干整数,表示第i个公司的分发列表,每行以0结尾。

输出格式:

对于每组数据,输出一行,为一个整数,表示组数。

输入样例:

3
5
2 4 3 0
4 5 0
0
0
1 0
3
2 0
0
2 1 0
3
2 0
3 0
0

输出样例:

3
3
3

 思路:

这题我们依旧提供两种方法,一个是Floyd,一个是tarjan。

讲真的我以前真不知道Floyd可以求强连通分量。。

可能是n3次方太可拍了。。

Floyd

#include<bits/stdc++.h>
using namespace std;
const int N = 110;
int dis[N][N];
bool st[N];
int n;
int ans;
void init()
{memset(dis, 0x3f, sizeof dis);memset(st, false, sizeof st);ans = 0;for (int i = 1;i <= n;i++) {dis[i][i] = 0;}
}
void solve()
{cin >> n;init();for (int i = 1;i <= n;i++) {int k;while (cin >> k && k != 0) {dis[i][k] = 1;}}for (int k = 1;k <= n;k++) {for (int i = 1;i <= n;i++) {for (int j = 1;j <= n;j++) {if (dis[i][j] > dis[i][k] + dis[k][j]) {dis[i][j] = dis[i][k] + dis[k][j];}}}}for (int i = 1;i <= n;i++) {if (st[i]) {continue;}st[i] = true;for (int j = i + 1;j <= n;j++) {if (st[j]) {continue;}if (dis[i][j] != 0x3f3f3f3f && dis[j][i] != 0x3f3f3f3f) {st[j] = true;}}ans++;}cout << ans<<endl;
}int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int T;cin >> T;while (T--) {solve();}return 0;
}

tarjan:

#include<bits/stdc++.h>
using namespace std;
const int N = 110, M = N * N;
int h[N], e[M], ne[M], idx;
int scc_cnt, id[N], _size[N];
int dfn[N], low[N];
int stk[N], top;
bool in_stk[N];
int timestamp;
int n;
void init()
{timestamp = 0;scc_cnt = 0;top = 0;idx = 0;memset(h, -1, sizeof h);memset(e, 0, sizeof e);memset(ne, 0, sizeof ne);memset(id, 0 ,sizeof id);memset(_size, 0, sizeof _size);memset(dfn, 0, sizeof dfn);memset(stk, 0, sizeof stk);memset(low, 0, sizeof low);memset(in_stk, false, sizeof in_stk);
}
void add(int a, int b) {e[idx] = b, ne[idx] = h[a];h[a] = idx++;
}void tarjan(int u)
{dfn[u] = low[u] = ++timestamp;stk[++top] = u, in_stk[u] = true;for (int i = h[u];i != -1;i = ne[i]){int j = e[i];if (!dfn[j]) {tarjan(j);low[u] = min(low[u], low[j]);}else if (in_stk[j]) {low[u] = min(low[u], low[j]);}}if (dfn[u] == low[u]) {int y;scc_cnt++;do {y = stk[top--];in_stk[y] = false;id[y] = scc_cnt;_size[scc_cnt]++;} while (u != y);}
}void solve()
{init();cin >> n;for (int i = 1;i <= n;i++) {int k =-1;while (cin >> k && k != 0) {add(i, k);}}for (int i = 1;i <= n;i++) {if (dfn[i]) {continue;}else {tarjan(i);}}cout << scc_cnt << endl;}
int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int T;cin >> T;while (T--) {solve();}return 0;
}

这里的tarjan不需要这么麻烦,我只是写一个模板写多了。。

 C 社交网络

可以将n个QQ用户间的好友关系建模为一个包含n个顶点的无向图,顶点编号为1至n,每个顶点对应一个用户,若2个用户i和j是QQ好友,则在顶点i和j之间连接一条边,并根据用户间的亲密度对该边附以一个权值cij​。在该图中,可以利用两个顶点间的最短路径长度衡量两个用户的关系密切程度,也可以利用经过一个顶点的最短路径数目来衡量一个用户在关系网络中的影响力,具体地,我们定义用户k在QQ关系网络中的“影响力”为:

 

895d2abdc3975abc5a1643aadf3d44da.png

其中Nij​为顶点i到j的最短路径数目,Nijk​为顶点i到j的所有最短路径中经过顶点k的最短路径数目(上述二值可能超出int型范围,请使用long long类型)。Dij​表示i到j的最短路径长度。

现给定一个如上描述的无向图,请编写程序,计算每个顶点的“影响力”,假定给定的图是连通的。

输入格式:

输入第一行为两个正整数n和e,分别表示图的顶点数和边数,接下来e行表示每条边的信息,每行为3个正整数a、b、c,其中a和b表示该边的端点编号,c表示权值。各边并非按端点编号顺序排列。

n≤100,e≤5000,c≤1000,任意两点间的最短路径数目≤1010

输出格式:

输出为n行,每行一个实数,精确到小数点后3位,第i行为顶点i的影响力。

输入样例:

4 4
3 2 6
4 3 1
1 3 9
4 1 1

输出样例:

0.000
0.000
30.000
20.000

解释:

对于顶点1:边2-3、3-4、2-4的最短路径均不经过顶点1,故顶点1的影响力为0.

对于顶点3:
顶点1到2的最短路径共1条,长度为8,经过点3,顶点2到4的最短路径共1条,长度为7,经过点3,顶点1到4的最短路径共1条,但不经过点3。
故f(3)=D12​∗1+D24​∗1+D14​∗0+D21​∗1+D42​∗1+D41​∗0=8+7+0+8+7+0=30.000

提示:

若顶点a到顶点b有x条路径,点b到点c有y条路径,则a经过b到达c的路径有x*y条。

 思路:

这题是最简单的有没有人同感。。

就是简单的dijktra。。

只是一定要小心longlong相乘会越界,改成double就好了。

#include<bits/stdc++.h>
using namespace std;
const int N = 110, M = 10010;
typedef long long LL;
typedef pair<LL, int>PII;
LL dis[N][N];
bool st[N][N];
int h[N], e[M], ne[M], w[M], idx;
LL cnt[N][N];
int n, m;
double ans[N];
void add(int a, int b, int c) {e[idx] = b, w[idx] = c, ne[idx] = h[a], h[a] = idx++;
}
void dijkstral(int u) {priority_queue<PII, vector<PII>, greater<PII>>q;q.push({ 0,u });dis[u][u] = 0;cnt[u][u] = 1;while (q.size()) {auto t = q.top();q.pop();int v = t.second;if (st[u][v]) {continue;}st[u][v] = true;for (int i = h[v];~i;i = ne[i]) {int j = e[i];if (st[u][j]) {continue;}if (dis[u][j] > dis[u][v] + w[i]) {dis[u][j] = dis[u][v] + w[i];cnt[u][j] = cnt[u][v];q.push({ dis[u][j],j});}else if (dis[u][j] == dis[u][v]+w[i]) {cnt[u][j] += cnt[u][v];q.push({ dis[u][j],j});}}}
}
void solve()
{cin >> n >> m;memset(st, false, sizeof st);memset(h, -1, sizeof h);memset(dis, 0x3f, sizeof dis);for (int i = 1;i <= m;i++) {int a, b, c;cin >> a >> b >> c;add(a, b, c);add(b, a, c);}for (int i = 1;i <= n;i++) {dijkstral(i);}for (int i = 1;i <= n;i++) {for (int j = 1;j <= n;j++) {for (int k = 1;k <= n;k++) {//cout << dis[j][k] << endl;//cout << cnt[j][k] << endl;if (j == i || k == i) {continue;}if (dis[j][k] == 0x3f3f3f3f||dis[j][i]==0x3f3f3f3f||dis[i][k]==0x3f3f3f3f) {continue;}if (cnt[j][i] == 0 || cnt[i][k]==0) {continue;}if (dis[j][k] != dis[j][i] + dis[i][k]) {continue;}//cout << i << " " << j << " " << k << endl;double x = cnt[j][i] * cnt[i][k];double y = x / cnt[j][k];ans[i] += y * dis[j][k];}}}for (int i = 1;i <= n;i++) {cout << fixed << setprecision(3) << ans[i] << endl;}
}
int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);solve();return 0;
}

 

 

相关文章:

吉林大学23级数据结构上机实验(第7周)

A 去火车站 寒假到了&#xff0c;小明准备坐火车回老家&#xff0c;现在他从学校出发去火车站&#xff0c;CC市去火车站有两种方式&#xff1a;轻轨和公交车。小明为了省钱&#xff0c;准备主要以乘坐公交为主。CC市还有一项优惠政策&#xff0c;持学生证可以免费乘坐一站轻轨&…...

SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)

文章目录 1.整合MyBatis 1.需求分析2.数据库表设计3.数据库环境配置 1.新建maven项目2.pom.xml 引入依赖3.application.yml 配置数据源4.Application.java 编写启动类5.测试6.配置类切换druid数据源7.测试数据源是否成功切换 4.Mybatis基础配置 1.编写映射表的bean2.MonsterMap…...

【2024最新】基于Springboot+Vue的网上图书商城平台Lw+PPT

作者&#xff1a;计算机搬砖家 开发技术&#xff1a;SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;Java精选实战项…...

JAVA-面向对象基础

文章目录 概要封装多态抽象类接口内部类为什么需要内部类 概要 面向对象是一种编程范式或设计哲学&#xff0c;它将软件系统设计为由多个对象组成&#xff0c;这些对象通过特定的方式相互作用 封装 将数据和操作数据的方法封装在一个类中&#xff0c;并通过访问修饰符控制对…...

Y3编辑器官方文档1:编辑器简介及菜单栏详解(文件、编辑、窗口、细节、调试)

文章目录 一、新建项目二、 编辑器主界面2.1 游戏场景2.2 导航栏/菜单栏2.3 功能栏三、菜单栏详细介绍3.1 文件3.1.1 版本管理3.1.2 项目管理(多关卡)3.1.2.1 多关卡功能说明3.1.2.2 关卡切换与关卡存档3.2 编辑3.2.1 通用设置3.2.2 键位设置3.3 窗口(日志)3.4 细节3.4.1 语言…...

力扣94题:二叉树的中序遍历

力扣94题&#xff1a;二叉树的中序遍历&#xff08;C语言实现详解&#xff09; 题目描述 给定一个二叉树的根节点 root &#xff0c;返回它的中序遍历&#xff08;Inorder Traversal&#xff09;。 中序遍历的规则是&#xff1a; 先访问左子树&#xff1b;再访问根节点&…...

【数据结构】二叉树的性质和存储结构

性质 在二叉树的第i层上至多有2^{i-1}个结点,至少有1个结点 深度为k的二叉树至多有2^{k-1}个结点&#xff08;k≥1&#xff09;&#xff0c;至少有k个结点 对任何一棵二叉树T&#xff0c;如果其叶子数为n0&#xff0c;度为2的结点数为n2&#xff0c;则n0n21 具有n个结点的完…...

【Spring项目】图书管理系统

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;项目实现准备 1&#xff1a;需求 &#xff08;1&#xff09;登录 2&#xff1a;准备…...

TCP编程案例

笔记&#xff1a;&#xff08;本题可能需要的&#xff09; TCP协议&#xff1a; TCP协议进行通信的两个应用进程&#xff1a;客户端、服务端。 使用TCP协议前&#xff0c;须先建立TCP连接&#xff0c;形成基于字节流的传输数据通道 传输前&#xff0c;采用“三次握手”方式…...

PyTorch 实现动态输入

使用 PyTorch 实现动态输入&#xff1a;支持训练和推理输入维度不一致的 CNN 和 LSTM/GRU 模型 在深度学习中&#xff0c;处理不同大小的输入数据是一个常见的挑战。许多实际应用需要模型能够灵活地处理可变长度的输入。本文将介绍如何使用 PyTorch 实现支持动态输入的 CNN 和…...

网络数据库

创建删除修改模式create schemadrop schema表create tabledrop tablealter table视图create view drop view索引create indexdrop index alter index 定义模式&#xff1a;create schema 《模式名》 authorization 《用户名》表定义语句 视图定义语句 授权定义语句//未指…...

【软考速通笔记】系统架构设计师⑲——专业英语

文章目录 一、前言二、常用名词三、架构风格四、非功能需求五、应用架构六、软件架构重用 一、前言 笔记目录大纲请查阅&#xff1a;【软考速通笔记】系统架构设计师——导读 二、常用名词 名词翻译architecture架构system系统design设计requirements需求components组件constr…...

Android APP自学笔记

摘抄于大学期间记录在QQ空间的一篇自学笔记&#xff0c;当前清理空间&#xff0c;本来想直接删除掉的&#xff0c;但是感觉有些舍不得&#xff0c;因此先搬移过来。 Android导入已有外部数据库 2015.06.26在QQ空间记录&#xff1a;在Android中不能直接打开res aw目录中的数据…...

Spring 事务和事务传播机制

Spring 事务和事务传播机制 一、Spring 事务的基本概念 事务是一组操作&#xff0c;被视为一个不可分割的工作单元&#xff0c;要么全部完成&#xff0c;要么全部失败回滚&#xff0c;以此来确保数据的一致性和完整性。Spring事务管理允许我们在应用程序中声明式地或编程式地…...

VSCode(四)CMake调试

1. 工具准备 1.1 C环境插件 1.2 CMake插件 2. Cmake工程 2.1 创建项目文件夹 ex:CMAKE_TEST 2.2 创建CMake工程 &#xff08;shift ctl P), 选择"CMAKE: Quick Start": 2.3 填写project name: (ex: test_cmake) 2.4 选择”Executable“ 项目文件内会自动…...

创建存储过程

在student数据库中&#xff0c;创建一个名为ST_CHAXUN_01的存储过程&#xff0c;该存储过程返回计算机系学生的“姓名”、“性别”、“出生日期”信息。 操作步骤如下&#xff1a; ① 在“对象资源管理器”窗格中&#xff0c;展开“数据库”结点。 ② 单击相应的数据库&#…...

macOS 15.1.1 (24B2091) 系统中快捷键符号及其代表的按键的对照表

以下是 macOS 15.1.1 (24B2091) 系统中快捷键符号及其代表的按键的对照表&#xff1a; 符号按键名称描述⌘Command (Cmd)常用的功能键&#xff0c;用于执行大多数快捷操作。⌥Option (Alt)Option 键&#xff0c;常用于辅助操作和特殊字符输入。⇧ShiftShift 键&#xff0c;常用…...

ftp服务器搭建-安装、配置及验证

ftp服务器搭建-安装、配置及验证 #安装 sudo apt-get install vsftpd #配置文件 cat > /etc/vsftpd.conf << "EOF" listenNO listen_ipv6YES anonymous_enableNO local_enableYES write_enableYES dirmessage_enableYES use_localtimeYES xferlog_enable…...

windows ping 执行过程分析

控制台 PS C:\Users\Admin> ping mcs.zijieapi.com正在 Ping mcs.zijieapi.com [223.109.117.226] 具有 32 字节的数据: 来自 223.109.117.226 的回复: 字节32 时间31ms TTL49 来自 223.109.117.226 的回复: 字节32 时间30ms TTL49 来自 223.109.117.226 的回复: 字节32 时…...

强大的远程同步工具-rsync

rsync 强大的远程同步工具&#xff0c;也可用于本地目录和本地目录的同步&#xff0c;它最大的特点就是会自动判断进行增量同步&#xff1b; # “演示文档”后加了/&#xff0c;代表传输的是文件&#xff0c;建议destination也指定一个目录&#xff0c;该目录可以不存在&…...

蝉联第一 | IDC云系统软件市场报告2024H1,云轴科技ZStack独立云厂商第一

2024年12月&#xff0c;根据全球知名的IT市场研究和咨询公司IDC最新发布的《中国云系统软件市场跟踪报告2024H1》显示&#xff0c;2024年上半年中国云系统软件市场规模达到27.93亿元人民币&#xff0c;同比增长11.6%。在这一增长趋势中&#xff0c;云轴科技ZStack作为云系统软件…...

【IPV6改造解读】

座右铭&#xff1a;我们每一个心怀希望的人&#xff0c;就像是一颗种子一样&#xff01; 文章目录 前言一、IPV6改造基本情况分析二、IPV6针对不同场景改造方案1.网站/APP场景-IPV6云网关升级改造方案2.局域网专网(互联网侧)场景-安全大脑IPV6改造方案 总结 前言 提示&#xf…...

常用的Kali命令Top10

Kali Linux是一种基于Debian的Linux发行版&#xff0c;被广泛用于渗透测试和网络安全。以下是一些常用的Kali Linux命令的详细解释&#xff1a; ifconfig&#xff1a;显示和配置网络接口的信息。可以用于查看当前系统的IP地址、网关和子网掩码等。 apt-get&#xff1a;用于安装…...

阿里巴巴正式发布了全新大型语言模型Marco-o1

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

【AI日记】24.12.07 kaggle 比赛 Titanic-10

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 内容&#xff1a; 学习 kaggle 入门比赛 Titanic - Machine Learning from Disaster学习机器学习&#xff08;pandas&#xff0c;numpy&#xff0c;sklearn&#xff0c;seaborn&#xff0c;matplotlib&a…...

《QT 示例宝库:探索丰富的编程世界》

《QT 示例宝库&#xff1a;探索丰富的编程世界》 一、QT 基础示例&#xff08;一&#xff09;QRadioButton 示例&#xff08;二&#xff09;拦截关闭事件示例 二、QT 常用代码示例&#xff08;一&#xff09;QObject 相关操作&#xff08;二&#xff09;Qt 基本容器遍历&#x…...

子类有多个父类的情况下Super不支持指定父类来调用方法

1、Super使用方法 super()函数在Python中用于调用父类的方法。它返回一个代理对象&#xff0c;可以通过该对象调用父类的方法。 要使用super()方法&#xff0c;需要在子类的方法中调用super()&#xff0c;并指定子类本身以及方法的名称。这样就可以在子类中调用父类的方法。 …...

鸿蒙UI开发——渐变色效果

1、概 述 ArkTs可以通过颜色渐变接口&#xff0c;设置组件的背景颜色渐变效果&#xff0c;实现在两个或多个指定的颜色之间进行平稳的过渡。 目前提供三种渐变类型&#xff1a;线性渐变、角度渐变、径向渐变。 我们在鸿蒙UI布局实战 —— 个人中心页面开发中&#xff0c;默认…...

java基础概念47-ArrayList、LinkList和迭代器

一、ArrayList集合 1-1、ArrayList的两种添加信息的方式 1-2、ArrayList集合底层逻辑 1、利用空参创建的集合&#xff0c;在底层创建一个默认长度为0的数组 2、添加第一个元素时&#xff0c;底层会创建一个新的长度为10的数组 3、存满时&#xff0c;会扩容1.5倍。 4、如果…...

java编程1.5.4 - 失而复得

前言 通过实践而发现真理&#xff0c;又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识&#xff0c;又从理性认识而能动地指导革命实践&#xff0c;改造主观世界和客观世界。实践、认识、再实践、再认识&#xff0c;这种形式&#xff0c;循环往复以至无穷&a…...

R语言使用“纽约市数据集中的优步皮卡”数据创建不同年度时间范围的可视化

一、项目背景 为了分析纽约市优步&#xff08;https://baike.baidu.com/item/Uber/14900884&#xff09;皮卡在不同年度的使用情况&#xff0c;需要利用R语言进行数据可视化。通过对比不同年度的数据&#xff0c;可以揭示出优步皮卡使用的趋势和变化。 二、数据准备 数据集&a…...

韩企研学团造访图为科技:共探人工智能创新前沿

今日&#xff0c;一支由韩国知名企业研学专家组成的代表团莅临图为科技深圳总部&#xff0c;展开了一场深度技术交流与研讨活动。 此次访问旨在通过实地探访中国领先的科技企业&#xff0c;促进中韩两国在科技创新领域的深入合作与交流。 韩国游学团合影 图为科技作为一家在人…...

Windows设备go环境安装配置

一、下载go安装包 官网链接&#xff1a;All releases - The Go Programming Language (google.cn) 安装过程比较简单&#xff0c;这里不再赘述&#xff0c;可参考这位博主的文章。本文重点在环境配置。golang环境详细安装、配置_golang安装-CSDN博客 二、环境变量配置 1.添…...

THREE.js 入门(一)xyz坐标系

一、坐标系概念 在 three.js 中&#xff0c;相机的默认朝向是沿着 Z 轴的负方向。也就是说&#xff0c;默认情况下&#xff0c;相机会沿着 Z 轴的负方向“看”到场景中的对象&#xff0c;而 X 轴和 Y 轴分别对应水平方向和垂直方向。换句话说&#xff0c;相机的默认位置是 (0,…...

Android仿美团左右联动购物列表

Android仿美团左右联动购物列表 左右联动购物列表&#xff0c;不难。 一、思路&#xff1a; 两个RecycleView 二、效果图&#xff1a; 三、关键代码&#xff1a; public class MainActivity extends AppCompatActivity {private RecyclerView rl_left;private RecyclerVie…...

HTML 标签语义化指南:让网页更易读

HTML 语义化标签是指在 HTML 中使用具有明确含义的标签来标记网页内容的结构和意义。这些标签可以提供更多的语义信息&#xff0c;有助于搜索引擎理解网页内容&#xff0c;并为使用辅助技术的用户提供更好的访问体验。 以下是一些常见的HTML语义化标签及其含义和用途&#xff…...

Java日志记录几种实现方案

在平时使用到一些软件中&#xff0c;比如某宝或者某书&#xff0c;通过记录用户的行为来构建和分析用户的行为数据&#xff0c;同时也能更好优化产品设计和提升用户体验。比如在一个订单系统中&#xff0c;需要确定追踪用户的行为&#xff0c;比如&#xff1a; 登录/登出浏览商…...

【C++算法】32.前缀和_矩阵区域和

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a; 题目链接&#xff1a; 1314. 矩阵区域和 题目描述&#xff1a; 解法 防止有人看不明白题目&#xff0c;先解释一下题目 二维前缀和思想&#xff1a; 使用前缀和矩阵 ret [x1,y1]~[x2,y2] D …...

30天学会Go--第7天 GO语言 Redis 学习与实践

30天学会Go–第7天 GO语言 Redis 学习与实践 文章目录 30天学会Go--第7天 GO语言 Redis 学习与实践前言一、Redis 基础知识1.1 Redis 的核心特性1.2 Redis 常见使用场景 二、安装 Redis2.1 在 Linux 上安装2.2 在 Windows 上安装2.3 使用 Docker 安装 Redis 三、Redis 常用命令…...

面经自测——死锁/死锁的必要条件/死锁的预防/进程通信的方式

前言 本文是作者专门用来自测Java后端相关面试题的&#xff0c;所有问题都是在牛客、知识星球或网上找到的最近最新的面试题&#xff0c;全文回答都是作者按自己的真实水平仿照真实环境的回答&#xff0c;所以答案不一定真实&#xff08;但回答一定真诚&#x1f923;&#xff0…...

Mysql索引,聚簇索引,非聚簇索引,回表查询

什么是索引 数据库索引是为了实现高效数据查询的一种有序的数据数据结构&#xff0c;类似于书的目录&#xff0c;通过目录可以快速的定位到想要的数据&#xff0c;因为一张表中的数据会有很多&#xff0c;如果直接去表中检索数据效率会很低&#xff0c;所以需要为表中的数据建立…...

Spring完整知识三(完结)

Spring集成MyBatis 注意 Spring注解形式集成MyBatis时&#xff0c;若SQL语句比较复杂则仍采用映射文件形式书写SQL语句&#xff1b;反之则用注解形式书写SQL语句&#xff0c;具体可详见Spring注解形式 环境准备相同步骤 Step1&#xff1a; 导入相关坐标&#xff0c;完整pom.…...

kafka-clients之ConsumerConfig

Kafka ConsumerConfig 中的配置项用于定义消费者的行为&#xff0c;如消费方式、偏移管理、组协调等。以下是ConsumerConfig中的关键配置项及其详细说明&#xff1a; 1. bootstrap.servers 类型&#xff1a;List<String>说明&#xff1a;Kafka集群的地址列表&#xff0…...

关于“浔川AI翻译”使用情况的调研报告

关于“浔川 AI 翻译”使用情况的调研报告 随着全球化进程加速及外语学习需求攀升&#xff0c;AI 翻译工具愈发普及。“浔川 AI 翻译”作为行业产品之一&#xff0c;为了解其市场表现与用户反馈&#xff0c;特开展本次问卷调查&#xff0c;现将关键结果汇报如下。 一、样本概…...

第一节、电路连接【51单片机-TB6600驱动器-步进电机教程】

摘要&#xff1a;本节介绍如何搭建一个51单片机TB6600驱动器步进电机控制电路&#xff0c;所用材料均为常见的模块&#xff0c;简单高效的方式搭建起硬件环境 一、硬件清单 ①51单片机最小控制系统 ②USB转TTL模块 ③开关电源 ④TB6600步进电机驱动器 ⑤二相四线步进电机 ⑥电…...

编程之路,从0开始:补充篇

Hello大家好&#xff01;很高兴和大家又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《题海拾贝》、《数据结构与算法之美》 欢迎点赞&#xff0c;关注&#xff01; 这篇…...

<script src = “https://cdn.jsdelivr.net/npm/vue/dist/vue.js“></script>

这行代码是HTML中的一个<script>标签&#xff0c;用于在网页中嵌入Vue.js库。具体来说&#xff1a; <script>&#xff1a;是HTML中的一个标签&#xff0c;用于定义客户端的脚本&#xff0c;比如JavaScript。 src&#xff1a;是<script>标签的一个属性&#…...

RabbitMQ延时队列

RabbitMQ延时队列 什么是延时队列 延时队列顾名思义&#xff0c;即放置在该队列里面的消息是不需要立即消费的&#xff0c;而是等待一段时间之后取出消费。 应用场景 场景一&#xff1a;在订单系统中&#xff0c;一个用户下单之后通常有30分钟的时间进行支付&#xff0c;如…...

Java——异常机制(下)

1 异常处理之(捕获异常) (一般处理运行时异常) (try-catch-finally子句) (finally一般用于文件最后关闭) (catch捕获的子类在前父类在后——>不然父类在前面都让父类捕获掉了&#xff0c;会报错) (Exception是父类放在最后&#xff0c;如果前面没有捕获到&#xff0c;就…...

9. 一分钟读懂“策略模式”

9.1 模式介绍 策略模式是一种行为型设计模式&#xff0c;用于在运行时灵活切换对象的行为或算法&#xff0c;它将算法封装为独立的类&#xff0c;使得它们可以互相替换&#xff0c;而不会影响使用这些算法的客户端代码。 策略模式的核心思想是&#xff1a;定义一系列可互换的算…...