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

2025.2.8总结

题目描述

如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出 orz

输入格式

第一行包含两个整数 N,MN,M,表示该图共有 NN 个结点和 MM 条无向边。

接下来 MM 行每行包含三个整数 Xi,Yi,ZiXi,Yi,Zi,表示有一条长度为 ZiZi 的无向边连接结点 Xi,YiXi,Yi

输出格式

如果该图连通,则输出一个整数表示最小生成树的各边的长度之和。如果该图不连通则输出 orz

输入输出样例

输入 #1复制

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

输出 #1复制

7

说明/提示

数据规模:

对于 20%20% 的数据,N≤5N≤5,M≤20M≤20。

对于 40%40% 的数据,N≤50N≤50,M≤2500M≤2500。

对于 70%70% 的数据,N≤500N≤500,M≤104M≤104。

对于 100%100% 的数据:1≤N≤50001≤N≤5000,1≤M≤2×1051≤M≤2×105,1≤Zi≤1041≤Zi≤104。

样例解释:

!https://cdn.luogu.com.cn/upload/pic/2259.png

所以最小生成树的总边权为 2+2+3=72+2+3=7。

**第一次错误原因:**初始化时将dist设置成1e9,而g[i][j]设置成1e5,这样设置初始值,会导致在更新dist时将原本的1e9更新为1e5从达不到判断的效果

源代码:

#include<iostream>
#include<cstring>
using namespace std;
const int MAX_n = 5005;
int dist[MAX_n],g[MAX_n][MAX_n];
bool  state[MAX_n];
int n, m;
int prim() {int res = 0;dist[1] = 0;for (int i = 0; i <= n; i++) {int t = -1;for (int j = 1; j <= n;j++) {if (!state[j] && (t == -1 || dist[t] > dist[j]))t = j;}state[t] = 1;if (dist[t] == 1e9)return 1e9;res += dist[t];for (int j = 1; j <= n; ++j)dist[j] = min(dist[j], g[t][j]);}return res;
}
int main() {cin >> n >> m;for (int i = 1; i <= n; i++) {dist[i] = 1e9;for (int j = 1; j <= n; j++) {g[i][j] = 1e5;}}for (int i = 1; i <= m; i++) {int x, y, z;cin >> x >> y >> z;g[x][y] = g[y][x] = min(g[x][y], z);}int t = prim();if (t == 1e9)cout << "orz" << endl;elsecout << t << endl;return 0;
}

**思路:**从结点1开始,t=1,遍历g[t][]找到比原来的权值并赋值给dist数组,重复进行该操作

源代码:

#include<iostream>
#include<cstring>
using namespace std;
const int MAX_n = 5005;
int dist[MAX_n],g[MAX_n][MAX_n];
bool  state[MAX_n];
int n, m;
int prim() {int res = 0;dist[1] = 0;for (int i = 0; i <= n; i++) {int t = -1;for (int j = 1; j <= n;j++) {if (!state[j] && (t == -1 || dist[t] > dist[j]))t = j;}state[t] = 1;if (dist[t] == 1e9)return 1e9;res += dist[t];for (int j = 1; j <= n; ++j)dist[j] = min(dist[j], g[t][j]);}return res;
}
int main() {cin >> n >> m;for (int i = 1; i <= n; i++) {dist[i] = 1e9;for (int j = 1; j <= n; j++) {g[i][j] = 1e9;}}for (int i = 1; i <= m; i++) {int x, y, z;cin >> x >> y >> z;g[x][y] = g[y][x] = min(g[x][y], z);}int t = prim();if (t >= 1e9)cout << "orz" << endl;elsecout << t << endl;return 0;
}

题目描述

国防部计划用无线网络连接若干个边防哨所。 2 种不同的通讯技术用来搭建无线网络;

每个边防哨所都要配备无线电收发器; 有一些哨所还可以增配卫星电话。

任意两个配备了一条卫星电话线路的哨所(两边都有卫星电话)均可以通话,无论他们相距多远。 而只通过无线电收发器通话的哨所之间的距离不能超过 DD,这是受收发器的功率限制。 收发器的功率越高,通话距离 DD 会更远,但同时价格也会更贵。

收发器需要统一购买和安装,所以全部哨所只能选择安装一种型号的收发器。 换句话说,每一对哨所之间的通话距离都是同一个 DD。 你的任务是确定收发器必须的最小通话距离 DD,使得每一对哨所之间至少有一条通话路径(直接的或者间接的)。

输入格式

第一行,22 个整数 SS 和 PP,SS 表示可安装的卫星电话的哨所数,PP 表示边防哨所的数量。

接下里 PP 行,每行两个整数 x,和x,y 描述一个哨所的平面坐标 (x,和)(x,y),以 km 为单位。

输出格式

第一行,11 个实数 DD,表示无线电收发器的最小传输距离,精确到小数点后两位。

输入输出样例

输入 #1复制

2 4 0 100 0 300 0 600 150 750

输出 #1复制

212.13

说明/提示

数据范围及约定

  • 对于 %P==1

    20%

    20

    的数据:

    P=2,S=1

    2,

  • 对于另外 %P==2

    20%

    20

    的数据:

    P=4,S=2

    4,

  • 对于 %S<

    100%

    100

    的数据保证:

    1≤S≤100

    1≤

    S

    100

    S<P≤500

    P

    500

    0≤x,和≤10000

    0≤

    x,y≤

    100 00 0

**第一次错误原因:**没有仔细审题,题目中要求的是每一对哨所之间直接或间接的至少有一条通话路径,而不是在所有通话路径中寻找倒数最小的几个

源代码:

#include<iostream>
#include<cmath>
using namespace std;
double dist[200005];
int x[505], y[505];
double dist_t(int x1,int x2,int y1,int y2) {return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
int sy(double s[], double x,int n) {for (int i = 0; i < n; i++) {if (x == s[i])return 0;}return 1;
}
int main() {int s, p;cin >> s >> p;for (int i = 1; i <= p; i++) {cin >> x[i] >> y[i];}int k = 0;for (int i = 1; i <= p; i++) {for (int j = 1; j <= p; j++) {if (i != j)dist[k++] = dist_t(x[i], x[j], y[i], y[j]);}}double min_S[105];int u = 0;while (s--) {double mins = 1e9;for (int i = 0; i < k; i++) {if (dist[i] < mins&&sy(min_S,dist[i],u))mins = dist[i];}min_S[u++] = mins;}printf("%.2lf ", min_S[u - 1]);return 0;
}

**思路:**用最小生成树先将所有的哨点连接起来再根据哨所的距离配备无线电收发器,然后将路径存入一个数组中,进行排序,数组的第k-s个数就是结果

源代码:

#include<iostream>
#include<cmath>
using namespace std;
double dist[505];
double g[505][505];
int x[505], y[505];
double mins[505];
bool vis[505];
int s, p, k = 0;
double dist_t(int x1, int x2, int y1, int y2) {return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
double min(double a, double b) {if (a > b)return b;elsereturn a;
}
void prim() {dist[1] = 0;for (int i = 1; i <= p; i++) {int t = -1;for (int j = 1; j <= p; j++) {if (!vis[j] && (t == -1 || dist[t] > dist[j]))t = j;}vis[t] = 1;mins[k++] = dist[t];for (int j = 1; j <= p; j++)dist[j] = min(g[t][j], dist[j]);}
}
void insert(double a[], int n) {for (int i = 1; i < n; i++) {double key = a[i];int j = i - 1;while (j>=0&&key<a[j]) {a[j + 1] = a[j];j--;}a[j + 1] = key;}
}
int main() {cin >> s >> p;for (int i = 1; i <= p; i++) {cin >> x[i] >> y[i];}for (int i = 1; i < 505; i++) {dist[i] = 1e9;for (int j = 1; j < 505; j++) {g[i][j] = 1e9;}}for (int i = 1; i <= p; i++) {for (int j = 1; j <= p; j++) {if (i != j)g[i][j]=g[j][i] = min(dist_t(x[i], x[j], y[i], y[j]),g[i][j]);}}prim();insert(mins, k);printf("%.2lf", mins[k - s]);return 0;
}

题目背景

还记得 NOIP 2011 提高组 Day1 中的铺地毯吗?时光飞逝,光阴荏苒,三年过去了。组织者精心准备的颁奖典礼早已结束,留下的则是被人们踩过的地毯。请你来解决类似于铺地毯的另一个问题。

题目描述

会场上有 nn 个关键区域,不同的关键区域由 mm 条无向地毯彼此连接。每条地毯可由三个整数 uu、vv、ww 表示,其中 uu 和 vv 为地毯连接的两个关键区域编号,ww 为这条地毯的美丽度。

由于颁奖典礼已经结束,铺过的地毯不得不拆除。为了贯彻勤俭节约的原则,组织者被要求只能保留至多 KK 条地毯,且保留的地毯构成的图中,任意可互相到达的两点间只能有一种方式互相到达。换言之,组织者要求新图中不能有环。现在组织者求助你,想请你帮忙算出这至多 KK 条地毯的美丽度之和最大为多少。

输入格式

第一行包含三个正整数 nn、mm、KK

接下来 mm 行中每行包含三个正整数 uu、vv、ww

输出格式

只包含一个正整数,表示这 KK 条地毯的美丽度之和的最大值。

输入输出样例

输入 #1复制

5 4 3 1 2 10 1 3 9 2 3 7 4 5 3

输出 #1复制

22

说明/提示

选择第 11、22、44 条地毯,美丽度之和为 10+9+3=2210+9+3=22。

若选择第 11、22、33 条地毯,虽然美丽度之和可以达到 10+9+7=2610+9+7=26,但这将导致关键区域 11、22、33 构成一个环,这是题目中不允许的。

1≤n,m,k≤1051≤n,m,k≤105。

**第一次错误原因:**使用插入排序时间复杂度平均情况为O(n2),并且使用嵌套循环导致时间复杂度较高

源代码:

#include<iostream>
using namespace std;
const int N = 1e5 + 5;
int n, m, k;
int nexta[N];
int ans = 0;
struct dists {int u, v, w;
}dist[N];
void insert(dists a[], int n) {for (int i = 1; i < n; i++) {dists key = a[i];int j = i - 1;while (j >= 0 && a[j].w < key.w) {a[j+1] = a[j];j--;}a[j + 1] = key;}
}
int find(int x) {if (x != nexta[x]) {return nexta[x] = find(nexta[x]);}return nexta[x];
}
void Union(int x,int y) {int fx = find(x);int fy = find(y);if (fx != fy) {nexta[fy] = fx;}
}
int main() {cin >> n >> m >> k;for (int i = 0; i < N; i++)nexta[i] = i;for (int i = 1; i <= m; i++)cin >> dist[i].u >> dist[i].v >> dist[i].w;insert(dist+1, m);while (k--) {for (int i = 0; i <= m; i++) {if (find(dist[i].u) != find(dist[i].v)) {Union(dist[i].u, dist[i].v);ans += dist[i].w;break;}}}cout << ans;return 0;
}

实际上并不需要使用嵌套循环,只需要用条件控制循环的结束即可,再将排序改成快速排序就可以解决

**思路:**使用并查集和快速排序计算美丽度的和,将u,v,w放在一个结构体中,方便操作,只需要一个i就可以访问对应的三个值,判断是否相连,如果不相连就加上美丽度,再连起来

源代码:

#include<iostream>
#include <algorithm>
using namespace std;
const int N = 1e5 + 5;
int n, m, k;
int nexta[N];
int ans = 0;
struct dists {int u, v, w;
}dist[N];
bool cmp(dists x, dists y) {return x.w > y.w;
}
int find(int x) {if (x != nexta[x]) {return nexta[x] = find(nexta[x]);}return nexta[x];
}
void Union(int x,int y) {int fx = find(x);int fy = find(y);if (fx != fy) {nexta[fy] = fx;}
}
int main() {cin >> n >> m >> k;for (int i = 0; i < N; i++)nexta[i] = i;for (int i = 1; i <= m; i++)cin >> dist[i].u >> dist[i].v >> dist[i].w;sort(dist + 1, dist + 1 + m, cmp);for (int i = 0; i <= m; i++) {if (find(dist[i].u) != find(dist[i].v)) {Union(dist[i].u, dist[i].v);k--;ans += dist[i].w;if (k == 0)break;}}cout << ans;return 0;
}

题目背景

“咚咚咚……”“查水表!”原来是查水表来了,现在哪里找这么热心上门的查表员啊!小明感动得热泪盈眶,开起了门……

题目描述

妈妈下班回家,街坊邻居说小明被一群陌生人强行押上了警车!妈妈丰富的经验告诉她小明被带到了 tt 区,而自己在 ss 区。

该市有 mm 条大道连接 nn 个区,一条大道将两个区相连接,每个大道有一个拥挤度。小明的妈妈虽然很着急,但是不愿意拥挤的人潮冲乱了她优雅的步伐。所以请你帮她规划一条从 ss 至 tt 的路线,使得经过道路的拥挤度最大值最小。

输入格式

第一行有四个用空格隔开的 nn,mm,ss,tt,其含义见【题目描述】。

接下来 mm 行,每行三个整数 u,v,wu,v,w,表示有一条大道连接区 uu 和区 vv,且拥挤度为 ww

两个区之间可能存在多条大道

输出格式

输出一行一个整数,代表最大的拥挤度。

输入输出样例

输入 #1复制

3 3 1 3 1 2 2 2 3 1 1 3 3

输出 #1复制

2

说明/提示

数据规模与约定

  • 对于 30% 的数据,保证 n≤10。

    30%

    n≤10

  • 对于 60% 的数据,保证 n≤100。

    60%

    n≤100

  • 对于 100% 的数据,保证 1≤n≤104,1≤m≤2×104,w≤104,1≤s,tn。且从 s 出发一定能到达 t 区。

    100%

    1≤n≤104

    1≤m≤2×104

    w≤104

    1≤s,t≤n

    s

    t


样例输入输出 1 解释

小明的妈妈要从 11 号点去 33 号点,最优路线为 11->22->33。

**第一次错误:**低级错误终止条件写错了

源代码:

#include<iostream>
#include<algorithm>
using namespace std;
const int M = 2 * 1e4 + 5;
struct dists {int u, v, w;
}dist[M];
int NEXT[M];
int n, m, s, t;
bool cmp(dists x, dists y) {return x.w < y.w;
}
int find(int x) {if (x != NEXT[x])return NEXT[x] = find(NEXT[x]);return NEXT[x];
}
void Union(int x, int y) {int fx = find(x);int fy = find(y);if (fx != fy)NEXT[fy] = fx;
}
int main() {cin >> n >> m >> s >> t;for (int i = 0; i < M; i++) {NEXT[i] = i;}for (int i = 1; i <= m; i++) {cin >> dist[i].u >> dist[i].v >> dist[i].w;}int MAX_s = 0;sort(dist + 1, dist + 1 + m, cmp);for (int i = 1; i <= m; i++) {if (find(dist[i].u) != find(dist[i].v)) {Union(dist[i].u, dist[i].v);MAX_s = max(MAX_s, dist[i].w);}if (find(i) == find(t)) {cout << MAX_s << endl;break;}}return 0;
}

**思路:**从起点开始找,到联通的点的最小拥挤度,一直找到终点为止,再找的过程中不断更新经过的地方的拥挤度的最大值

源代码:

#include<iostream>
#include<algorithm>
using namespace std;
const int M = 2 * 1e4 + 5;
struct dists {int u, v, w;
}dist[M];
int NEXT[M];
int n, m, s, t;
bool cmp(dists x, dists y) {return x.w < y.w;
}
int find(int x) {if (x != NEXT[x])return NEXT[x] = find(NEXT[x]);return NEXT[x];
}
void Union(int x, int y) {int fx = find(x);int fy = find(y);if (fx != fy)NEXT[fy] = fx;
}
int main() {cin >> n >> m >> s >> t;for (int i = 0; i < M; i++) {NEXT[i] = i;}for (int i = 1; i <= m; i++) {cin >> dist[i].u >> dist[i].v >> dist[i].w;}int MAX_s = 0;sort(dist + 1, dist + 1 + m, cmp);for (int i = 1; i <= m; i++) {if (find(dist[i].u) != find(dist[i].v)) {Union(dist[i].u, dist[i].v);MAX_s = max(MAX_s, dist[i].w);}if (find(s) == find(t)) {cout << MAX_s << endl;break;}}return 0;
}

第一次错误时并没有立即发现是终止条件错误而导致的错误,于是又写了一个prim算法的

**prim做法的第一次错误:**使用邻接矩阵,导致空间复杂度过高

**思路:**选择s为起点开始找连通的点的最小拥挤度,不断更新最大值,直到p==s时就说明到达终点就可以退出循环。

源代码:

#include<iostream>
#include<algorithm>
using namespace std;
const int M = 2 * 1e4 + 5;
int n, m, s, t;
int dist[M], g[M][M];
bool vis[M];
int prim() {dist[s] = 0;int MAX_min = 0;for (int i = 1; i <= m; i++) {int p = -1;for (int j = 1; j <= m; j++) {if (!vis[j] && (p == -1 || dist[p] > dist[j]))p = j;}if (dist[p] == 1e9)return 1e9;vis[p] = 1;MAX_min = max(MAX_min, dist[p]);if (p == t)return MAX_min;for (int j = 1; j <= m; j++)dist[j] = min(dist[j], g[p][j]);}
}
int main() {cin >> n >> m >> s >> t;for (int i = 1; i <= m; i++) {dist[i] = 1e9;for (int j = 1; j <= m; j++) {g[i][j] = 1e9;}}for (int i = 1; i <= m; i++) {int u, v, w;cin >> u >> v >> w;g[u][v] = g[v][u] = min(g[u][v], w);}int y = prim();cout << y;return 0;
}

正确写法应该改成使用邻接表。邻接表还不会明天再写邻接表的写法

相关文章:

2025.2.8总结

题目描述 如题&#xff0c;给出一个无向图&#xff0c;求出最小生成树&#xff0c;如果该图不连通&#xff0c;则输出 orz。 输入格式 第一行包含两个整数 N,MN,M&#xff0c;表示该图共有 NN 个结点和 MM 条无向边。 接下来 MM 行每行包含三个整数 Xi,Yi,ZiXi,Yi,Zi&#…...

软件模拟I2C案例(寄存器实现)

引言 在经过前面对I2C基础知识的理解&#xff0c;对支持I2C通讯的EEPROM芯片M24C02的简单介绍以及涉及到的时序操作做了整理。接下来&#xff0c;我们就正式进入该案例的实现环节了。本次案例是基于寄存器开发方式通过软件模拟I2C通讯协议&#xff0c;然后去实现相关的需求。 阅…...

开源CodeGPT + DeepSeek-R1 是否可以替代商业付费代码辅助工具

开源CodeGPT + DeepSeek-R1 是否可以替代商业付费代码辅助工具 背景与研究目的 在快速发展的软件开发领域,代码辅助工具已成为提高开发效率和质量的关键。然而,商业付费工具如通义灵码和腾讯AI代码助手,尽管功能强大,但其高昂的成本和许可证限制,使得许多企业寻求更具吸…...

c++:list

1.list的使用 1.1构造 1.2迭代器遍历 &#xff08;1&#xff09;迭代器是算法和容器链接起来的桥梁 容器就是链表&#xff0c;顺序表等数据结构&#xff0c;他们有各自的特点&#xff0c;所以底层结构是不同的。在不用迭代器的前提下&#xff0c;如果我们的算法要作用在容器上…...

Websocket从原理到实战

引言 WebSocket 是一种在单个 TCP 连接上进行全双工通信的网络协议&#xff0c;它使得客户端和服务器之间能够进行实时、双向的通信&#xff0c;既然是通信协议一定要从发展历史到协议内容到应用场景最后到实战全方位了解 发展历史 WebSocket 最初是为了解决 HTTP 协议在实时…...

探索robots.txt:网站管理者的搜索引擎指南

在数字时代&#xff0c;网站如同企业的在线名片&#xff0c;其内容和结构对搜索引擎的可见性至关重要。而在这背后&#xff0c;有一个默默工作的文件——robots.txt&#xff0c;它扮演着搜索引擎与网站之间沟通桥梁的角色。本文将深入探讨robots.txt的功能、编写方法及其在现代…...

ubuntu中如何在vscode的终端目录后显示(当前的git分支名) 实测有用

效果展示 配置过程&#xff1a; 在 Ubuntu 中&#xff0c;如果你想在 VS Code 的终端提示符后显示当前的 Git 分支名&#xff0c;可以通过修改 Shell 配置文件&#xff08;如 ~/.bashrc 或 ~/.zshrc&#xff09;来实现。以下是具体步骤&#xff1a; 1. 确定使用的 Shell 首…...

0012—数组

存取一组数据&#xff0c;使用数组。 数组是一组相同类型元素的集合。 要存储1-10的数字&#xff0c;怎么存储&#xff1f; C语言中给了数组的定义&#xff1a;一组相同类型元素的集合。 创建一个空间创建一组数&#xff1a; 一、数组的定义 int arr[10] {1,2,3,4,5,6,7,8,…...

决策树算法相关文献

决策树是一种基于树状结构的机器学习算法&#xff0c;广泛应用于分类和回归任务。尽管决策树算法已经非常成熟&#xff0c;但研究者们仍在不断探索新的方法和技术&#xff0c;以进一步提升其性能、适应性和可解释性。 以下是当前研究者对决策树算法的最新研究方向和内容&#x…...

DeepSeek在FPGA/IC开发中的创新应用与未来潜力

随着人工智能技术的飞速发展&#xff0c;以DeepSeek为代表的大语言模型&#xff08;LLM&#xff09;正在逐步渗透到传统硬件开发领域。在FPGA&#xff08;现场可编程门阵列&#xff09;和IC&#xff08;集成电路&#xff09;开发这一技术密集型行业中&#xff0c;DeepSeek凭借其…...

学习threejs,使用Lensflare模拟镜头眩光

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.Lensflare 二、&…...

RuoYi-Vue-Oracle的oracle driver驱动配置问题ojdbc8-12.2.0.1.jar的解决

RuoYi-Vue-Oracle的oracle driver驱动配置问题ojdbc8-12.2.0.1.jar的解决 1、报错情况 下载&#xff1a;https://gitcode.com/yangzongzhuan/RuoYi-Vue-Oracle 用idea打开&#xff0c;启动&#xff1a; 日志有报错&#xff1a; 点右侧m图标&#xff0c;maven有以下报误 &…...

kafka服务端之日志磁盘存储

文章目录 页缓存顺序写零拷贝 Kafka依赖于文件系统&#xff08;更底层地来说就是磁盘&#xff09;来存储和缓存消息 。 那么kafka是如何让自身在使用磁盘存储的情况下达到高性能的&#xff1f;接下来主要从3各方面详细解说。 页缓存 页缓存是操作系统实现的一种主要的磁盘缓存…...

deepseek来讲lua

Lua 是一种轻量级、高效、可嵌入的脚本语言&#xff0c;广泛应用于游戏开发、嵌入式系统、Web 服务器等领域。以下是 Lua 的主要特点和一些基本概念&#xff1a; 1. 特点 轻量级&#xff1a;Lua 的核心非常小&#xff0c;适合嵌入到其他应用程序中。高效&#xff1a;Lua 的执…...

C++开发(软件开发)常见面试题

目录 1、C里指针和数组的区别 2、C中空指针请使用nullptr不要使用NULL 3、http/https区别和头部结构&#xff1f; 4、有了mac地址为什么还要ip地址&#xff1f;ip地址的作用 5、有了路由器为什么还要交换机&#xff1f; 6、面向对象三大特性 7、友元函数 8、大端小端 …...

AtCoder Beginner Contest 391(A~E题题解)

A - Lucky Direction 思路&#xff1a;纯模拟的一个水题 #include <bits/stdc.h> using namespace std; #define int long long string s; signed main() { cin>>s;for(int i0;i<s.size();i){char cs[i];if(cN){cout<<"S";}else if(c…...

使用线性回归模型逼近目标模型 | PyTorch 深度学习实战

前一篇文章&#xff0c;计算图 Compute Graph 和自动求导 Autograd | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 使用线性回归模型逼近目标模型 什么是回归什么是线性回归使用 PyTorch 实现线性回归模型代码执行结…...

解决com.kingbase8.util.KSQLException: This _connection has been closed.

问题描述 一个消息管理系统,系统采用kingbase8数据库,数据库采用单体模式,后台应用也采用springboot单体模式。系统正式上线后,出现几个JDBC响应的异常信息: com.kingbase8.util.KSQLException: An I/O error occurred while sending to the backend.java.net.SocketTime…...

Pyqt 的QTableWidget组件

QTableWidget 是 PyQt6 中的一个表格控件&#xff0c;用于显示和编辑二维表格数据。它继承自 QTableView&#xff0c;提供了更简单的方式来处理表格数据&#xff0c;适合用于需要展示结构化数据的场景。 1. 常用方法 1.1 构造函数 QTableWidget(parent: QWidget None)&#x…...

DeepSeek R1 Distill Llama 70B(免费版)API使用详解

DeepSeek R1 Distill Llama 70B&#xff08;免费版&#xff09;API使用详解 在人工智能领域&#xff0c;随着技术的不断进步&#xff0c;各种新的模型和应用如雨后春笋般涌现。今天&#xff0c;我们要为大家介绍的是OpenRouter平台上提供的DeepSeek R1 Distill Llama 70B&…...

24.ppt:小李-图书策划方案【1】

目录 NO1234​ NO5678​ NO1234 新建PPT两种方式&#x1f447;docx中视图→导航窗格→标题1/2/3ppt新建幻灯片→从大纲→重置开始→版式设计→主题插入→表格 NO5678 SmartArt演示方案&#xff1a;幻灯片放映→自定义幻灯片放映→新建→选中添加...

百科词条创建审核不通过的原因有哪些?

我们知道的国内有名的百科网站有百度百科、快懂百科、搜狗百科、360百科,这些有名的百科网站。一般来说,百科的词条排名都是在第一页的,无论是名人、明星、软件、影视名称,还是其他名称,大多排名都在首页,这就拥有了更多的曝光量和流量,而且由于百科是人们获取信息、查找资料的…...

amis组件crud使用踩坑

crud注意 过滤条件参数同步地址栏 默认 CRUD 会将过滤条件参数同步至浏览器地址栏中&#xff0c;比如搜索条件、当前页数&#xff0c;这也做的目的是刷新页面的时候还能进入之前的分页。 但也会导致地址栏中的参数数据合并到顶层的数据链中&#xff0c;例如&#xff1a;自动…...

【docker】Failed to allocate manager object, freezing:兼容兼容 cgroup v1 和 v2

参考大神让系统同时兼容 cgroup v1 和 v2 要解决你系统中只挂载了 cgroup v2 但需要兼容 cgroup v1 的问题,可以通过以下几步来使系统同时兼容 cgroup v1 和 cgroup v2。这样 Docker 和其他服务就可以正常工作了。步骤 1:更新 Grub 配置,启用兼容模式 编辑 GRUB 配置来启用同…...

LeetCode:503.下一个更大元素II

跟着carl学算法&#xff0c;本系列博客仅做个人记录&#xff0c;建议大家都去看carl本人的博客&#xff0c;写的真的很好的&#xff01; 代码随想录 LeetCode&#xff1a;503.下一个更大元素II 给定一个循环数组 nums &#xff08; nums[nums.length - 1] 的下一个元素是 nums[…...

【AI日记】25.02.08

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】【AI应用】 探索 AI 应用探索周二有个面试&#xff0c;明后天打算好好准备一下&#xff0c;我打算主要研究下 AI 如何在该行业赋能和应用&#xff0c;以及该行业未来的发展前景和公司痛点&#…...

32. C 语言 安全函数( _s 尾缀)

本章目录 前言什么是安全函数&#xff1f;安全函数的特点主要的安全函数1. 字符串操作安全函数2. 格式化输出安全函数3. 内存操作安全函数4. 其他常用安全函数 安全函数实例示例 1&#xff1a;strcpy_s 和 strcat_s示例 2&#xff1a;memcpy_s示例 3&#xff1a;strtok_s 总结 …...

常用数据结构之String字符串

字符串 在Java编程语言中&#xff0c;字符可以使用基本数据类型char来保存&#xff0c;在 Java 中字符串属于对象&#xff0c;Java 提供了 String 类来创建和操作字符串。 操作字符串常用的有三种类&#xff1a;String、StringBuilder、StringBuffer 接下来看看这三类常见用…...

Android开发获取缓存,删除缓存

Android开发获取缓存&#xff0c;删除缓存 app设置中往往有清理缓存的功能。会显示当前缓存时多少&#xff0c;然后可以点击清理缓存 直接上代码&#xff1a; object CacheHelper {/*** 获取缓存大小* param context* return* throws Exception*/JvmStaticfun getTotalCache…...

网络安全 | 保护智能家居和企业IoT设备的安全策略

网络安全 | 保护智能家居和企业IoT设备的安全策略 一、前言二、智能家居和企业 IoT 设备面临的安全威胁2.1 设备自身安全缺陷2.2 网络通信安全隐患2.3 数据隐私风险2.4 恶意软件和攻击手段 三、保护智能家居和企业 IoT 设备的安全策略3.1 设备安全设计与制造环节的考量3.2 网络…...

掌握API和控制点(从Java到JNI接口)_38 JNI从C调用Java函数 01

1. Why? 将控制点下移到下C/C层 对古典视角的反思 App接近User&#xff0c;所以App在整体架构里&#xff0c;是主导者&#xff0c;拥有控制权。所以&#xff0c; App是架构的控制点所在。Java函数调用C/C层函数&#xff0c;是合理的。 但是EIT造形告诉我们&#xff1a; App…...

vue组件间的数据传递:自定义输入组件(v-model/defineModel)

文章目录 引言I Vue 3.4 开始,推荐使用 defineModel() 宏子组件使用defineModel父组件用 v-model 绑定值底层机制II Vue 3.4之前:自定义输入组件(组件中实现 v-model )前置知识父组件监听自定义事件进行 v-model 的数据绑定子组件通过监听input事件触发自定义的 `update:mo…...

记录一下 在Mac下用pyinstallter 打包 Django项目

安装: pip install pyinstaller 在urls.py from SheepMasterOneToOne import settings from django.conf.urls.static import staticurlpatterns [path("admin/", admin.site.urls),path(generate_report/export/, ReportAdmin(models.Report, admin.site).generat…...

大模型相关概念

文章目录 部署相关数据并行模型并行张量并行管道并行&#xff08;流水线并行&#xff09; 混合并行&#xff08;数据并行模型并行&#xff09;显存优化技术InfiniBand去中心化的All-Reduce操作软件 大模型命名**1. 模型架构相关****2. 模型用途相关****3. 训练方法相关****4. 多…...

【实用教程】在 Android Studio 中连接 MuMu 模拟器

MuMu 模拟器是一个非常流行的安卓模拟器&#xff0c;特别适合开发人员进行应用测试&#xff0c;我使用它的根本原因在于Android Studio自带的AVM实现是太难用了&#xff0c;但是Mumu模拟器启动以后不会自动被Android Studio识别到&#xff0c;但是其他模拟器都是能够正常被Andr…...

Linux 安装 Ollama

1、下载地址 Download Ollama on Linux 2、有网络直接执行 curl -fsSL https://ollama.com/install.sh | sh 命令 3、下载慢的解决方法 1、curl -fsSL https://ollama.com/install.sh -o ollama_install.sh 2、sed -i s|https://ollama.com/download/ollama-linux|https://…...

双亲委派(JVM)

1.双亲委派 在 Java 中&#xff0c;双薪委派通常是指双亲委派模型&#xff0c;它是 Java 类加载器的一种工作模式&#xff0c;用于确保类加载的安全性和一致性。以下是其相关介绍&#xff1a; 定义与作用 定义&#xff1a;双亲委派模型要求除了顶层的启动类加载器外&#xf…...

青少年编程与数学 02-009 Django 5 Web 编程 01课题、概要

青少年编程与数学 02-009 Django 5 Web 编程 01课题、概要 一、Django 5Django 5 的主要特性包括&#xff1a; 二、MVT模式三、官方网站四、内置功能数据库 ORM&#xff08;对象关系映射&#xff09;用户认证和授权表单处理模板引擎URL 路由缓存框架国际化和本地化安全性功能管…...

为AI聊天工具添加一个知识系统 之90 详细设计之31 Derivation 之5-- 神经元变元用它衍生神经网络

本文要点 要点 Derivation 神经元变元衍生模型&#xff08; 衍生 神经网络&#xff09; 整体上说&#xff0c;它&#xff08; Derivation&#xff09;自己充当 整体无意识原型anestor的代言--作为所有神经网络的 共生环境。Derivation 初始断言了 基于最古老的 自然和逻辑树…...

Centos挂载镜像制作本地yum源,并补装图形界面

内网环境centos7.9安装图形页面内网环境制作本地yum源 上传镜像到服务器目录 创建目录并挂载镜像 #创建目录 cd /mnt/ mkdir iso#挂载 mount -o loop ./CentOS-7-x86_64-DVD-2009.iso ./iso #前面镜像所在目录&#xff0c;后面所挂载得目录#检查 [rootlocalhost mnt]# df -h…...

【Python实战练习】Python类中的方法:形式与作用详解

文章目录 Python类中的方法:形式与作用详解1. 实例方法 (Instance Method)定义与使用作用2. 类方法 (Class Method)定义与使用作用3. 静态方法 (Static Method)定义与使用作用4. 特殊方法 (Magic/Dunder Methods)常见的特殊方法定义与使用作用5. 抽象方法 (Abstract Method)定…...

Idea 2024.3 使用CodeGPT插件整合Deepseek

哈喽&#xff0c;大家好&#xff0c;我是浮云&#xff0c;最近国产大模型Deepseek异常火爆&#xff0c;作为程序员我也试着玩了一下&#xff0c;首先作为简单的使用&#xff0c;大家进入官网&#xff0c;点击开始对话即可进行简单的聊天使用&#xff0c;点击获取手机app即可安装…...

神经网络常见激活函数 1-sigmoid函数

sigmoid 1 函数求导 sigmoid函数 σ ( x ) 1 1 e ( − x ) \sigma(x) \frac{1}{1e^{(-x)}} σ(x)1e(−x)1​ sigmoid函数求导 d d x σ ( x ) d d x ( 1 1 e − x ) e − x ( 1 e − x ) 2 ( 1 e − x ) − 1 ( 1 e − x ) 2 1 1 e − x − 1 ( 1 e − x ) 2 …...

Vue(6)

一.路由板块封装 &#xff08;1&#xff09;路由的封装抽离 目标&#xff1a;将路由板块抽离出来 好处&#xff1a;拆分板块&#xff0c;利于维护 // 路由的使用步骤 5 2 // 5个基础步骤 // 1. 下载 v3.6.5 // 2. 引入 // 3. 安装注册 Vue.use(Vue插件) // 4. 创建路由对象…...

深入理解进程优先级

目录 引言 一、进程优先级基础 1.1 什么是进程优先级&#xff1f; 1.2 优先级与系统性能 二、查看进程信息 2.1 使用ps -l命令 2.2 PRI与NI的数学关系 三、深入理解Nice值 3.1 Nice值的特点 3.2 调整优先级实践 四、进程特性全景图 五、优化实践建议 结语 引言 在操…...

机器学习 - 需要了解的条件概率、高斯分布、似然函数

似然函数是连接数据与参数的桥梁&#xff0c;通过“数据反推参数”的逆向思维&#xff0c;成为统计推断的核心工具。理解它的关键在于区分“参数固定时数据的概率”与“数据固定时参数的合理性”&#xff0c;这种视角转换是掌握现代统计学和机器学习的基础。 一、在学习似然函…...

程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图<7>

大家好啊&#xff0c;我是小象٩(๑ω๑)۶ 我的博客&#xff1a;Xiao Xiangζั͡ޓއއ 很高兴见到大家&#xff0c;希望能够和大家一起交流学习&#xff0c;共同进步。 今天我们一起来学习转移表&#xff0c;回调函数&#xff0c;qsort… 目录 一、转移表1.1 定义与原理1.3…...

4、C#基于.net framework的应用开发实战编程 - 测试(四、一) - 编程手把手系列文章...

四、 测试&#xff1b; 四&#xff0e;一、调试&#xff1b; 开发完应用&#xff0c;就需要对应用进行测试&#xff0c;第一部就从调试开始&#xff0c;特别是一些重要的功能点&#xff0c;还有如果运行时有问题&#xff0c;也需要对应用进行调试&#xff0c;以找出问题。 1、 …...

逻辑回归:Sigmoid函数在分类问题中的应用

欢迎来到我的主页&#xff1a;【Echo-Nie】 本篇文章收录于专栏【机器学习】 1 什么是Sigmoid函数&#xff1f; Sigmoid函数&#xff08;Logistic函数&#xff09;是机器学习中最经典的激活函数之一&#xff0c;是一个在生物学中常见的S型函数&#xff0c;也称为S型生长曲线。…...

使用 SDKMAN! 在 Mac(包括 ARM 架构的 M1/M2 芯片)上安装 Java 8

文章目录 1. 安装 SDKMAN!2. 查找可用的 Java 8 版本3. 安装 Java 84. 验证安装5. 切换 Java 版本&#xff08;可选&#xff09;6. 解决 ARM 架构兼容性问题总结 可以使用 SDKMAN! 在 Mac&#xff08;包括 ARM 架构的 M1/M2 芯片&#xff09;上安装 Java 8。SDKMAN! 是一个强大…...