【图论】单源最短路

算法提高课笔记。(本篇还未更新完…

目录

  • 单源最短路的建图方式
    • 例题
      • 热浪
        • 题意
        • 思路
        • 代码
      • 信使
        • 题意
        • 思路
        • 代码
      • 香甜的黄油
        • 题意
        • 思路
        • 代码
      • 最小花费
        • 题意
        • 思路
        • 代码
      • 最优乘车
        • 题意
        • 思路
        • 代码
      • 昂贵的聘礼
        • 题意
        • 思路
        • 代码

单源最短路的建图方式

最短路问题可以分为以下两类:

  • 边权非负——朴素Dijkstra、堆优化Dijkstra
  • 有负权边——Bellman-Ford、SPFA

例题

热浪

原题链接

德克萨斯纯朴的民众们这个夏天正在遭受巨大的热浪!!!

他们的德克萨斯长角牛吃起来不错,可是它们并不是很擅长生产富含奶油的乳制品。

农夫John此时身先士卒地承担起向德克萨斯运送大量的营养冰凉的牛奶的重任,以减轻德克萨斯人忍受酷暑的痛苦。

John已经研究过可以把牛奶从威斯康星运送到德克萨斯州的路线。

这些路线包括起始点和终点一共有 T 个城镇,为了方便标号为 1 到 T。

除了起点和终点外的每个城镇都由 双向道路 连向至少两个其它的城镇。

每条道路有一个通过费用(包括油费,过路费等等)。

给定一个地图,包含 C 条直接连接 2 个城镇的道路。

每条道路由道路的起点 Rs,终点 Re 和花费 Ci 组成。

求从起始的城镇 Ts 到终点的城镇 Te 最小的总费用。

输入格式

第一行: 4 个由空格隔开的整数: T,C,Ts,Te;

第 2 到第 C+1 行: 第 i+1 行描述第 i 条道路,包含 3 个由空格隔开的整数: Rs,Re,Ci。

输出格式

一个单独的整数表示从 Ts 到 Te 的最小总费用。

数据保证至少存在一条道路。

数据范围

1 ≤ T ≤ 2500 1≤T≤2500 1T2500,
1 ≤ C ≤ 6200 1≤C≤6200 1C6200,
1 ≤ T s , T e , R s , R e ≤ T 1≤Ts,Te,Rs,Re≤T 1Ts,Te,Rs,ReT,
1 ≤ C i ≤ 1000 1≤Ci≤1000 1Ci1000

输入样例

7 11 5 4
2 4 2
1 4 3
7 2 2
3 4 3
5 7 5
7 3 3
6 1 1
6 3 4
2 4 3
5 6 3
7 2 1

输出样例

7

题意

板题

思路

写了个SPFA和堆优化的Dijkstra,详见代码

代码

#include <bits/stdc++.h>using namespace std;typedef pair<int, int> PII;const int N = 2510, M = 6200 * 2 + 10;int n, m, S, T;
int h[N], e[M], w[M], ne[M], idx;
int dist[N], q[N];
bool st[N];void add(int a, int b, int c)
{e[idx] = b, w[idx] = c, ne[idx] = h[a], h[a] = idx ++ ;
}void spfa() // SPFA算法
{memset(dist, 0x3f3f3f3f, sizeof dist);dist[S] = 0;queue<int> q;q.push(S);st[S] = true;while (q.size()){int t = q.front();q.pop();st[t] = false;for (int i = h[t]; ~i; i = ne[i]){int j = e[i];if (dist[j] > dist[t] + w[i]){dist[j] = dist[t] + w[i];if (!st[j]){q.push(j);st[j] = true;}}}}
}void dijkstra() // 堆优化Dijkstra
{memset(dist, 0x3f3f3f3f, sizeof dist);dist[S] = 0;priority_queue<PII, vector<PII>, greater<PII>> heap;heap.push({0, S});while (heap.size()){auto t = heap.top();heap.pop();int distance = t.first, ver = t.second;if (st[ver]) continue;st[ver] = true;for (int i = h[ver]; ~i; i = ne[i]){int j = e[i];if (dist[j] > dist[ver] + w[i]){dist[j] = dist[ver] + w[i];heap.push({dist[j], j});}}}
}int main()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);cin >> n >> m >> S >> T;memset(h, -1, sizeof h);for (int i = 0; i < m; i ++ ){int a, b, c;cin >> a >> b >> c;add(a, b, c), add(b, a, c);}// todo 下面的选一个就可以 //spfa();dijkstra();cout << dist[T] << endl;
}

信使

原题链接

战争时期,前线有 n 个哨所,每个哨所可能会与其他若干个哨所之间有通信联系。

信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单位)。

指挥部设在第一个哨所。

当指挥部下达一个命令后,指挥部就派出若干个信使向与指挥部相连的哨所送信。

当一个哨所接到信后,这个哨所内的信使们也以同样的方式向其他哨所送信。信在一个哨所内停留的时间可以忽略不计。

直至所有 n 个哨所全部接到命令后,送信才算成功。

因为准备充足,每个哨所内都安排了足够的信使(如果一个哨所与其他 k 个哨所有通信联系的话,这个哨所内至少会配备 k 个信使)。

现在总指挥请你编一个程序,计算出完成整个送信过程最短需要多少时间。

输入格式

第 1 行有两个整数 n 和 m,中间用 1 个空格隔开,分别表示有 n 个哨所和 m 条通信线路。

第 2 至 m+1 行:每行三个整数 i、j、k,中间用 1 个空格隔开,表示第 i 个和第 j 个哨所之间存在 双向 通信线路,且这条线路要花费 k 天。

输出格式

一个整数,表示完成整个送信过程的最短时间。

如果不是所有的哨所都能收到信,就输出-1。

数据范围

1 ≤ n ≤ 100 , 1≤n≤100, 1n100,
1 ≤ m ≤ 200 , 1≤m≤200, 1m200,
1 ≤ k ≤ 1000 1≤k≤1000 1k1000

输入样例

4 4
1 2 4
2 3 7
2 4 1
3 4 6

输出样例

11

题意

建图,指挥部在1

每个点可以给相邻点送信,求所有点都收到信的最短时间

如果有收不到信的,输出-1

思路

对于每个点来说:接收到信的时间等于他到指挥部的最短距离

因此可以分别求每个点的最短路径,求所有最短路径的最大值

如果有最短路径是正无穷,说明不能传过去,输出-1

下方代码使用Floyd算法

代码

#include <bits/stdc++.h>using namespace std;const int N = 110, INF = 0x3f3f3f3f;int n, m;
int d[N][N];int main()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);cin >> n >> m;memset(d, 0x3f3f3f3f, sizeof d);for (int i = 1; i <= n; i ++ ) d[i][i] = 0;for (int i = 0; i < m; i ++ ){int a, b, c;cin >> a >> b >> c;d[a][b] = d[b][a] = min(d[a][b], c);}for (int k = 1; k <= n; k ++ )for (int i = 1; i <= n; i ++ )for (int j = 1; j <= n; j ++ )d[i][j] = min(d[i][j], d[i][k] + d[k][j]);int maxx = *max_element(d[1] + 1, d[1] + n + 1);if (maxx == 0x3f3f3f3f) cout << "-1";else cout << maxx;
}

香甜的黄油

原题链接

农夫John发现了做出全威斯康辛州最甜的黄油的方法:糖。

把糖放在一片牧场上,他知道 N 只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。

当然,他将付出额外的费用在奶牛上。

农夫John很狡猾,就像以前的巴甫洛夫,他知道他可以训练这些奶牛,让它们在听到铃声时去一个特定的牧场。

他打算将糖放在那里然后下午发出铃声,以至他可以在晚上挤奶。

农夫John知道每只奶牛都在各自喜欢的牧场(一个牧场不一定只有一头牛)。

给出各头牛在的牧场和牧场间的路线,找出使所有牛到达的路程和最短的牧场(他将把糖放在那)。

数据保证至少存在一个牧场和所有牛所在的牧场连通。

输入格式

第一行: 三个数:奶牛数 N,牧场数 P,牧场间道路数 C。

第二行到第 N+1 行: 1 到 N 头奶牛所在的牧场号。

第 N+2 行到第 N+C+1 行:每行有三个数:相连的牧场A、B,两牧场间距 D,当然,连接是双向的。

输出格式

共一行,输出奶牛必须行走的最小的距离和。

数据范围

1 ≤ N ≤ 500 , 1≤N≤500, 1N500,
2 ≤ P ≤ 800 , 2≤P≤800, 2P800,
1 ≤ C ≤ 1450 , 1≤C≤1450, 1C1450,
1 ≤ D ≤ 255 1≤D≤255 1D255

输入样例

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

输出样例

8

题意

若干头牛分别在不同牧场,找到一个牧场使所有牛到该牧场的总距离之和最小

思路

求以每个点为起点,其余点到该点的最短路之和

输出最小值

以下代码为堆优化Dijkstra

代码

#include <bits/stdc++.h>using namespace std;typedef pair<int, int> PII;const int N = 810, M = 3000, INF = 0x3f3f3f3f;int n, m, p;
int id[N];
int h[N], e[M], w[M], ne[M], idx;
int dist[N];
bool st[N];void add(int a, int b, int c)
{e[idx] = b, w[idx] = c, ne[idx] = h[a], h[a] = idx ++ ;
}int dijkstra(int start)
{memset(dist, 0x3f3f3f3f, sizeof dist);memset(st, false, sizeof st);dist[start] = 0;priority_queue<PII, vector<PII>, greater<PII>> q;q.push({0, start});while (q.size()){auto t = q.top();q.pop();int distance = t.first, ver = t.second;if (st[ver]) continue;st[ver] = true;for (int i = h[ver]; ~i; i = ne[i]){int j = e[i];if (dist[j] > dist[ver] + w[i]){dist[j] = dist[ver] + w[i];q.push({dist[j], j});}}}// 遍历奶牛不是遍历牧场int res = 0;for (int i = 0; i < n; i ++ ){int j = id[i];if (dist[j] == INF) return INF;res += dist[j];}return res;
}int main()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);cin >> n >> p >> m;for (int i = 0; i < n; i ++ ) cin >> id[i];// 存图memset(h, -1, sizeof h);for (int i = 0; i < m; i ++ ){int a, b, c;cin >> a >> b >> c;add(a, b, c), add(b, a, c);}// 取所有res中的最小值int res = INF;for (int i = 1; i <= p; i ++ ) res = min(res, dijkstra(i));cout << res;
}

最小花费

原题链接

在 n 个人中,某些人的银行账号之间可以互相转账。

这些人之间转账的手续费各不相同。

给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问 A 最少需要多少钱使得转账后 B 收到 100 元。

输入格式

第一行输入两个正整数 n,m,分别表示总人数和可以互相转账的人的对数。

以下 m 行每行输入三个正整数 x,y,z,表示标号为 x 的人和标号为 y 的人之间互相转账需要扣除 z% 的手续费 ( z<100 )。

最后一行输入两个正整数 A,B。

数据保证 A 与 B 之间可以直接或间接地转账。

输出格式

输出 A 使得 B 到账 100 元最少需要的总费用。

精确到小数点后 8 位。

数据范围

1 ≤ n ≤ 2000 , 1≤n≤2000, 1n2000,
m ≤ 105 m≤105 m105

输入样例

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

输出样例

103.07153164

题意

n个人互相转账,给出每两个人转账的手续费,询问A最少发出去多少钱使得B可以收到100

思路

将每个人看做点,权重是能传过去的百分比(比如说手续费3%,这条边的权重就是0.97),问题就变成了
100 = d ( A ) ∗ w 1 ∗ w 2 ∗ … ∗ w n 100=d(A)*w_1*w_2*…*w_n 100=d(A)w1w2wn
想让 d ( A ) d(A) d(A) 最小,就要让 w i w_i wi 最大
所以就是求最短路算法(但是是让权重之积最大)

下方代码为朴素版Dijkstra

代码

#include <bits/stdc++.h>using namespace std;const int N = 2010;int n, m, S, T;
double g[N][N];
double dist[N];
bool st[N];void dijkstra()
{dist[S] = 1;for (int i = 1; i <= n; i ++ ){int t = -1;for (int j = 1; j <= n; j ++ )if (!st[j] && (t == -1 || dist[t] < dist[j]))t = j;st[t] = true;for (int j = 1; j <= n; j ++ )dist[j] = max(dist[j], dist[t] * g[t][j]);}
}int main()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);cin >> n >> m;memset(g, 0, sizeof g);while (m -- ){int a, b, c;cin >> a >> b >> c;double z = (100.0 - c) / 100;g[a][b] = g[b][a] = z;}cin >> S >> T;dijkstra();cout << fixed << setprecision(8) << 100 / dist[T];
}

最优乘车

原题链接

H 城是一个旅游胜地,每年都有成千上万的人前来观光。

为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴士线路。

每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终到达终点巴士站。

一名旅客最近到 H 城旅游,他很想去 S 公园游玩,但如果从他所在的饭店没有一路巴士可以直接到达 S 公园,则他可能要先乘某一路巴士坐几站,再下来换乘同一站台的另一路巴士,这样换乘几次后到达 S 公园。

现在用整数 1,2,…N 给 H 城的所有的巴士站编号,约定这名旅客所在饭店的巴士站编号为 1,S 公园巴士站的编号为 N。

写一个程序,帮助这名旅客寻找一个最优乘车方案,使他在从饭店乘车到 S 公园的过程中换乘的次数最少。

输入格式

第一行有两个数字 M 和 N,表示开通了 M 条单程巴士线路,总共有 N 个车站。

从第二行到第 M+1 行依次给出了第 1 条到第 M 条巴士线路的信息,其中第 i+1 行给出的是第 i 条巴士线路的信息,从左至右按运行顺序依次给出了该线路上的所有站号,相邻两个站号之间用一个空格隔开。

输出格式

共一行,如果无法乘巴士从饭店到达 S 公园,则输出 NO,否则输出最少换乘次数,换乘次数为 0 表示不需换车即可到达。

数据范围

1 ≤ M ≤ 100 , 1≤M≤100, 1M100,
2 ≤ N ≤ 500 2≤N≤500 2N500

输入样例

3 7
6 7
4 7 3 6
2 1 3 5

输出样例

2

题意

给出多条公交车线路,求从起点到终点最少的换乘次数是多少

思路

这题的难度在建图上,如果有一条线路是 1->3->5->7,从1开始坐,不管做到3还是5还是7,都不需要换乘,因此可以将1向后面的所有点都连一条边

建完图直接BFS即可

代码

#include <bits/stdc++.h>using namespace std;const int N = 510;int m, n;
bool g[N][N];
int dist[N];
int stop[N];void bfs()
{memset(dist, 0x3f3f3f3f, sizeof dist);queue<int> q;q.push(1);dist[1] = 0;while (q.size()){int t = q.front();q.pop();for (int i = 1; i <= n; i ++ )if (g[t][i] && dist[i] > dist[t] + 1){dist[i] = dist[t] + 1;q.push(i);}}
}int main()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);cin >> m >> n;string line;getline(cin, line);while (m -- ){getline(cin, line);stringstream ssin(line);int cnt = 0, p;while (ssin >> p) stop[cnt ++ ] = p;for (int j = 0; j < cnt; j ++ )for (int k = j + 1; k < cnt; k ++ )g[stop[j]][stop[k]] = true;}bfs();if (dist[n] == 0x3f3f3f3f) cout << "NO\n";else cout << max(dist[n] - 1, 0) << endl;
}

昂贵的聘礼

原题链接

年轻的探险家来到了一个印第安部落里。

在那里他和酋长的女儿相爱了,于是便向酋长去求亲。

酋长要他用 10000 个金币作为聘礼才答应把女儿嫁给他。

探险家拿不出这么多金币,便请求酋长降低要求。

酋长说:”嗯,如果你能够替我弄到大祭司的皮袄,我可以只要 8000 金币。如果你能够弄来他的水晶球,那么只要 5000 金币就行了。”

探险家就跑到大祭司那里,向他要求皮袄或水晶球,大祭司要他用金币来换,或者替他弄来其他的东西,他可以降低价格。

探险家于是又跑到其他地方,其他人也提出了类似的要求,或者直接用金币换,或者找到其他东西就可以降低价格。

不过探险家没必要用多样东西去换一样东西,因为不会得到更低的价格。

探险家现在很需要你的帮忙,让他用最少的金币娶到自己的心上人。

另外他要告诉你的是,在这个部落里,等级观念十分森严。

地位差距超过一定限制的两个人之间不会进行任何形式的直接接触,包括交易。

他是一个外来人,所以可以不受这些限制。

但是如果他和某个地位较低的人进行了交易,地位较高的的人不会再和他交易,他们认为这样等于是间接接触,反过来也一样。

因此你需要在考虑所有的情况以后给他提供一个最好的方案。

为了方便起见,我们把所有的物品从 1 开始进行编号,酋长的允诺也看作一个物品,并且编号总是 1。

每个物品都有对应的价格 P,主人的地位等级 L,以及一系列的替代品 Ti 和该替代品所对应的”优惠” Vi。

如果两人地位等级差距超过了 M,就不能”间接交易”。

你必须根据这些数据来计算出探险家最少需要多少金币才能娶到酋长的女儿。

输入格式

输入第一行是两个整数 M,N,依次表示地位等级差距限制和物品的总数。

接下来按照编号从小到大依次给出了 N 个物品的描述。

每个物品的描述开头是三个非负整数 P、L、X,依次表示该物品的价格、主人的地位等级和替代品总数。

接下来 X 行每行包括两个整数 T 和 V,分别表示替代品的编号和”优惠价格”。

输出格式

输出最少需要的金币数。

数据范围

1 ≤ N ≤ 100 , 1≤N≤100, 1N100,
1 ≤ P ≤ 10000 , 1≤P≤10000, 1P10000,
1 ≤ L , M ≤ N , 1≤L,M≤N, 1L,MN,
0 ≤ X < N 0≤X<N 0X<N

输入样例

1 4
10000 3 2
2 8000
3 5000
1000 2 1
4 200
3000 2 1
4 200
50 2 0

输出样例

5250

题意

有个人想娶酋长的女儿,酋长需要指定数量金钱的聘礼,或者拿一样东西和少一点的金钱替代,这样东西的所有者需要指定的金钱换这样东西,或者拿另一样东西和少一点的金钱代替,以此类推…同时,所有者阶级超过指定数字的不能间接交易,现在给出所有东西的价值、替代方式和所有者阶级,求这个人最少用多少钱能娶到酋长的女儿

思路

题目很难读懂,读懂后发现难点还是在建图上,我们把每样物品看作一个点,根据样例可以建出以下图:
在这里插入图片描述
此时设置一个虚拟源点,所有情况都从虚拟源点开始,得到以下图:
在这里插入图片描述
从虚拟源点开始求到点1的最短路即可

那么阶级问题怎么考虑呢?

注意到阶级最高只有100,如果阶级限制是1的话,最多也只有100种划分情况,所以直接枚举所有的阶级划分就可以了

代码

#include <bits/stdc++.h>using namespace std;const int N = 110;int n, m;
int w[N][N], level[N];
int dist[N];
bool st[N];int dijkstra(int down, int up)
{memset(dist, 0x3f3f3f3f, sizeof dist);memset(st, 0, sizeof st);dist[0] = 0;for (int i = 1; i <= n; i ++ ){int t = -1;for (int j = 0; j <= n; j ++ )if (!st[j] && (t == -1 || dist[t] > dist[j]))t = j;st[t] = true;for (int j = 1; j <= n; j ++ ) // 更新所有在阶级区间范围内且与t有邻边的点if (w[t][j] != 0x3f3f3f3f && level[j] >= down && level[j] <= up)dist[j] = min(dist[j], dist[t] + w[t][j]);}return dist[1];
}int main()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);cin >> m >> n;// 存图memset(w, 0x3f3f3f3f, sizeof w);for (int i = 0; i <= n; i ++ ) w[i][i] = 0;for (int i = 1; i <= n; i ++ ){int price, cnt;cin >> price >> level[i] >> cnt;w[0][i] = min(price, w[0][i]);while (cnt -- ){int id, cost;cin >> id >> cost;w[id][i] = min(w[id][i], cost);}}int res = 0x3f3f3f3f;for (int i = level[1] - m; i <= level[1]; i ++ )res = min(res, dijkstra(i, i + m));cout << res;
}

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

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

相关文章

Linux命令200例:tree用于以树状结构显示文件和目录

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌。CSDN专家博主&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &…

【前端】CSS垂直居中的7种方法

文章目录 line-height绝对定位margin:autoflex绝对定位margin:负值定位transformvertical-align:middledisplay:table-cell思维导图 前文&#xff1a;【前端】CSS水平居中的6种方法_karshey的博客-CSDN博客 有很多相似的部分。 line-height 适用于单行的行内元素设置line-he…

2005-2020年280个地级市绿色全要素生产率测算原始数据

2005-2020年280个地级市绿色全要素生产率测算原始数据 1、时间&#xff1a;2005-2020年 2、来源&#xff1a;中国城市统计年鉴、中国区域统计年鉴、中国能源年鉴、中国环境年鉴等 3、范围&#xff1a;280个地级市 4、指标&#xff1a;年末单位从业人员数、规模以上工业企业…

9.1网络通信基础

一.基础概念: 1)IP地址:描述网络上的一个设备所在的位置. 2)端口号(port):区分一个主机上不同的进程,和pid一样的作用,但两者不同. 3)协议:网络通信传输数据的含义,协议表示一种约定,这种约定可以是任意的.协议分层之后,上层不需要知道下层协议的细节,可以灵活地调整,替换某…

LVS/DR+Keepalived负载均衡实战(一)

引言 负载均衡这个概念对于一个IT老鸟来说再也熟悉不过了&#xff0c;当听到此概念的第一反应是想到举世闻名的nginx&#xff0c;但殊不知还有一个大名鼎鼎的负载均衡方案可能被忽略了&#xff0c;因为对于一般系统来说&#xff0c;很多应用场合中采用nginx基本已经满足需求&a…

【Kubernetes】Kubernetes之kubectl详解

kubectl 一、陈述式资源管理1. 陈述式资源管理方法2. 基本信息查看3. 项目周期管理3.1 创建 kubectl create 命令3.2 发布 kubectl expose命令3.3 更新 kubectl set3.4 回滚 kubectl rollout3.5 删除 kubectl delete 4. kubectl 的发布策略4.1 蓝绿发布4.2 红黑发布4.3 灰度发布…

Docker安装 Kibana

目录 前言安装Kibana步骤1&#xff1a;准备1. 安装docker2. 搜索可以使用的镜像。3. 也可从docker hub上搜索镜像。4. 选择合适的redis镜像。 步骤2&#xff1a;拉取 kibana 镜像拉取镜像查看已拉取的镜像 步骤3&#xff1a;创建容器创建容器方式1&#xff1a;快速创建容器 步骤…

Mongodb:业务应用(2)

需求&#xff1a; 1、获取保存到mongodb库中的搜索记录列表 2、实现删除搜索记录接口 保存搜索记录数据参考上篇Mongodb&#xff1a;业务应用&#xff08;1&#xff09;_Success___的博客-CSDN博客 获取记录列表 1、创建controller package com.heima.search.controller.v1;…

【软考】2023系统架构设计师考试

目录 1 软考资格设置 2 考试报名 3 考试准备 4 参加考试 5 考试感受 6 其他 1 软考资格设置 2 考试报名 报名网址&#xff1a;https://www.ruankao.org.cn/ 3 考试准备 4 参加考试 2023年下半年系统架构设计师考试时间为11月4、5日。 5 考试感受 6 其他 最近好像有地区…

解决Redis启动时闪退 报错Creating Server TCP listening socket *:6379: bind: No error

找到安装redis的文件夹 在地址输入cmd 依次输入如下 redis-cli.exe shutdown exit redis-server.exe redis.windows.conf

可视化高级绘图技巧100篇-总论

前言 优秀的数据可视化作品可以用三个关键词概括&#xff1a;准确、清晰、优雅。 准确&#xff1a;精准地反馈数据的特征信息&#xff08;既不遗漏也不冗余&#xff0c;不造成读者疏漏&误读细节&#xff09; 清晰&#xff1a;获取图表特征信息的时间越短越好 优雅&…

微服务05-Sentinel流量防卫兵

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以 流量 为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 S…

灰度非线性变换之c++实现(qt + 不调包)

本章介绍灰度非线性变换&#xff0c;具体内容包括&#xff1a;对数变换、幂次变换、指数变换。他们的共同特点是使用非线性变换关系式进行图像变换。 1.灰度对数变换 变换公式&#xff1a;y a log(1x) / b&#xff0c;其中&#xff0c;a控制曲线的垂直移量&#xff1b;b为正…

SAP Fiori 问题收集

事务代码篇 启动工作台&#xff1a;/N/UI2/FLP 错误日志&#xff1a; /n/IWFND/ERROR_LOG 服务清单&#xff1a; /n/IWFND/MAINT_SERVICE 创建语义对象&#xff1a;/N/UI2/SEMOBJ 创建目录&#xff1a;/N/UI2/FLPD_CONF&#xff08;cross-client&#xff09;或 /N/UI2…

关于ISO27701隐私信息安全管理体系介绍

01 什么是ISO27701 ISO27701是对ISO27001信息安全管理和ISO27002安全控制的隐私扩展&#xff0c;全称《安全技术—扩展ISO27001和ISO27002的隐私信息管理—要求与指南》&#xff0c;是ISO标准委员会以ISO 27001为基准&#xff0c;以ISO27552为蓝本&#xff0c;建立发布的隐私…

HarmonyOS应用开发者基础与高级认证题库——中级篇

系列文章目录 HarmonyOS应用开发者基础与高级认证题库——基础篇 HarmonyOS应用开发者基础与高级认证题库——中级篇 文章目录 系列文章目录前言一、判断二、单选三、多选 前言 今天刚换了台果子手机就收到了华子鸿蒙开发认证邀请&#xff08;认证链接&#xff09;&#xff0…

数据库--MySQL

一、什么是范式&#xff1f; 范式是数据库设计时遵循的一种规范&#xff0c;不同的规范要求遵循不同的范式。 最常用的三大范式 第一范式(1NF)&#xff1a;属性不可分割&#xff0c;即每个属性都是不可分割的原子项。(实体的属性即表中的列) 第二范式(2NF)&#xff1a;满足…

Django配置(部署环境较乱,暂时启用)

django配置 web服务器中部署项目及WSGI简介 web服务器 WSGI 在IIS中部署django项目 安装 wfastcgi &#xff1a;pip install wfastcgi安装IIS&#xff1a; 以上选择项勾选后确定 将CGI文件复制到项目中&#xff0c; 将项目复制到IIS默认目录中 部署IIS 添加变量信息如下…

Centos7.9系统_亲测成功_磁盘满了_分区和挂载新盘_创建文件夹并挂载分区---Linux工作笔记057

由于在某些部署环境下,运维管理员,仅仅是给分配一些硬盘容量,但是并没有进行分区和挂载到对应的合适的目录下,因此这个时候就需要我们自己去处理了. 这个是自己亲测成功的:由于是后面记录的,尽量记录详细 free -h 查看一下内存情况 df -h查看 硬盘的使用情况,还有是否有没挂载…

Django路由Router

文章目录 一、路由router路由匹配命名空间反向解析 二、实践创建用户模型Model添加子路由 - 创建用户首页页面跳转 - 使用反向解析和命名空间1. 不使用命名空间的效果2. 使用命名空间的效果 用户详情页面跳转 - 路由传参路由传递多个参数re_path 以前写法,了解即可重定向Redire…