蓝桥杯加训

1.两只塔姆沃斯牛(模拟)

在这里插入图片描述
在这里插入图片描述
思路:人和牛都记录三个数据,当前坐标和走的方向,如果人和牛的坐标和方向走重复了,那就说明一直在绕圈圈,无解

#include<iostream>
using namespace std;
const int N = 15;
char g[N][N];
int b[N][N][N][N][N][N];
int tx, ty, ex, ey;
struct Point{int x, y, fang;
}peo, cow;
int ok;int dx[] = {-1, 0, 1, 0};
int dy[] = {0, 1, 0, -1};void ff(){int px = peo.x + dx[peo.fang];int py = peo.y + dy[peo.fang];int cx = cow.x + dx[cow.fang];int cy = cow.y + dy[cow.fang];if(g[px][py] != '*'){peo.x = px;peo.y = py;}else{peo.fang = (peo.fang + 1) % 4;}if(g[cx][cy] != '*'){cow.x = cx;cow.y = cy;}else{cow.fang = (cow.fang + 1) % 4;}
}int main(){for(int i = 0; i <= 11; i++){for(int j = 0; j <= 11; j++){g[i][j] = '*';}}for(int i = 1; i <= 10; i++){for(int j = 1; j <= 10; j++){cin>>g[i][j];if(g[i][j] == 'F'){tx = i;ty = j;}if(g[i][j] == 'C'){ex = i;ey = j;}}}
//	for(int i = 0; i <= 11; i++){
//		for(int j = 0; j <= 11; j++){
//			cout<<g[i][j];
//		}
//		cout<<endl;
//	}peo = {tx, ty, 0};cow = {ex, ey, 0};int cnt = 0, ok1 = 0, ok2 = 0;while(!(peo.x == cow.x && peo.y == cow.y)){cnt++;ff();if(b[peo.x][peo.y][peo.fang][cow.x][cow.y][cow.fang] == 1){ok = 1;break;}b[peo.x][peo.y][peo.fang][cow.x][cow.y][cow.fang] = 1;}if(ok == 1) cout<<0;else cout<<cnt;return 0;
}

2.宇宙总统(排序)

在这里插入图片描述
思路:自定义排序,按照从大到小升序排序

#include<iostream>
#include<algorithm>
using namespace std;
const int N = 25;
pair<string, int> q[N];
int n;bool cmp(const pair<string, int>& pp, const pair<string, int>& qq){if(pp.first.size() != qq.first.size()) return pp.first.size() > qq.first.size();else{int m = pp.first.size();for(int i = 0; i < m; i++){if(pp.first[i] != qq.first[i]){return pp.first[i] > qq.first[i];}}} 
}int main(){cin>>n;string x;for(int i = 1; i <= n; i++){cin>>x;q[i] = {x, i};}sort(q + 1, q + n + 1, cmp);cout<<q[1].second<<endl;cout<<q[1].first;return 0;
}

3.回文质数(回文数、质数)

在这里插入图片描述
思路:先判断回文数,再判断质数,最大的回文质数是 9989899

#include<iostream>
#include<cstring>
using namespace std;
int a, b;// 检查是否回文 
int check1(int x){int res = 0, t = x;while(t){res = res * 10 + t % 10;t /= 10;}return res == x;
}// 检查是否质数 
int check2(int x){if(x < 2) return 0;for(int i = 2; i <= x / i; i++){if(x % i == 0){return 0;}}return 1;
}int main(){cin>>a>>b;for(int i = a; i <= b; i++){// 最大的回文质数是 9989899 if(i > 10000000) break;if(check1(i)){//cout<<i<<endl;if(check2(i)){cout<<i<<endl;}}}return 0;
}

4.海底高铁(前缀和、差分)

在这里插入图片描述
在这里插入图片描述
思路:如上,差分标记两个起始地点,然后前缀和求出每个地方需要走多少次,贪心求出买票还是买卡划算

#include<iostream>
#include<cstring>
using namespace std;
const int N = 1e5 + 10;
int p[N], s[N];
int n, m;int main(){cin>>n>>m;for(int i = 0; i < m; i++){cin>>p[i];if(i > 0){if(p[i] > p[i - 1]){s[p[i - 1]]++;s[p[i]]--;}else{s[p[i]]++;s[p[i - 1]]--;}}}// 差分数组累加,前缀和for(int i = 1; i <= n; i++){s[i] += s[i - 1];}int a, b, c;long long sum = 0;for(int i = 1; i < n; i++){cin>>a>>b>>c;sum += min(1ll * a * s[i], 1ll * b * s[i] + c);}if(m < 2) cout<<0;else cout<<sum;return 0;
}

5.KMP(kmp)

在这里插入图片描述

#include<iostream>
#include<cstring>
using namespace std;
const int N = 1e6 + 10;
int ne[N], f[N];
char s[N], p[N];
int n, m;void kmp(){ne[1] = 0;int j = 0;for(int i = 2; i <= m; i++){while(j > 0 && p[i] != p[j + 1]) j = ne[j];if(p[i] == p[j + 1]) j++;ne[i] = j;}j = 0;for(int i = 1; i <= n; i++){while(j > 0 && s[i] != p[j + 1]) j = ne[j];if(s[i] == p[j + 1]) j++;f[i] = j;}for(int i = 1; i <= n; i++){if(f[i] == m){cout<<(i - m + 1)<<endl;}}for(int i = 1; i <= m; i++){cout<<ne[i]<<" ";}
}int main(){cin>>(s + 1)>>(p + 1);n = strlen(s + 1);m = strlen(p + 1);kmp();return 0;
}

6.直播获奖(桶排序)

在这里插入图片描述

#include<iostream>
using namespace std;
const int N = 610;
int t[N];
int n, w;int main(){cin>>n>>w;int x;for(int i = 1; i <= n; i++){cin>>x;t[x]++;int sum = 0;for(int j = 600; j >= 0; j--){sum += t[j];if(sum >= max(1, i * w / 100)){cout<<j<<" ";break;}}}return 0;
}

7.最大子段和(递推)

在这里插入图片描述
思路:从开头一直累加,如果小于 0,那就重新开始累加,取最大值

#include<iostream>
#include<algorithm>
using namespace std;
const int N = 2e5 + 10;
int a[N];
int n; int main(){cin>>n;int x, res = 0, ans = -1e9;for(int i = 0; i < n; i++){cin>>x;res += x;ans = max(ans, res);if(res < 0) res = 0;}cout<<ans;return 0;
}

8.采药(01背包)

在这里插入图片描述
思路:每个物品只能使用一次,时间就是体积

#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1000 + 10;
int f[N], v[N], w[N];
int n, m; int main(){cin>>m>>n;for(int i = 1; i <= n; i++){cin>>v[i]>>w[i];}for(int i = 1; i <= n; i++){for(int j = m; j >= v[i]; j--){f[j] = max(f[j], f[j - v[i]] + w[i]);} }cout<<f[m];return 0;
}

9.疯狂的采药(完全背包)

在这里插入图片描述
思路:时间就是体积,完全背包,注意数据范围,背包体积 1e7,最大价值是 1e7 * 1e4 = 1e11

#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1e7 + 10;
long long f[N], v[N], w[N];
int n, m; int main(){cin>>m>>n;for(int i = 1; i <= n; i++){cin>>v[i]>>w[i];}for(int i = 1; i <= n; i++){for(int j = v[i]; j <= m; j++){f[j] = max(f[j], f[j - v[i]] + w[i]);} }cout<<f[m];return 0;
}

10.最大食物链计数(拓扑排序)

在这里插入图片描述

思路:求的是路径条数,只有出度为 0 的时候才累加答案

#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
using namespace std;
const int N = 5e3 + 10, mod = 80112002;
vector<int> g[N];
int ru[N], chu[N];
int siz[N];
int n, m; 
int cnt;void ff(){queue<int> q;for(int i = 1; i <= n; i++){if(ru[i] == 0){siz[i] = 1;q.push(i);} }while(q.size()){int it = q.front();q.pop();for(int i : g[it]){siz[i] = (siz[i] + siz[it]) % mod;ru[i]--;if(ru[i] == 0){if(chu[i] == 0){cnt = (cnt + siz[i]) % mod;}else{q.push(i);}}}}
}int main(){cin>>n>>m;int a, b;for(int i = 1; i <= m; i++){cin>>a>>b;g[a].push_back(b);chu[a]++;ru[b]++;}ff();cout<<cnt;return 0;
}

11.装箱问题(01背包)

在这里插入图片描述
思路:01 背包,求最大能装下的体积,体积也是价值

#include<iostream>
using namespace std;
const int N = 2e4 + 10;
int f[N], v[N];
int n, m;int main(){cin>>m>>n;for(int i = 1; i <= n; i++){cin>>v[i];}for(int i = 1; i <= n; i++){for(int j = m; j >= v[i]; j--){f[j] = max(f[j], f[j - v[i]] + v[i]);}}cout<<(m - f[m]);return 0;
}

12.高维正方体(快速幂、逆元)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
思路:f[i][j]:i 维立方体中 j 维元素个数

#include<iostream>
using namespace std;
const int N = 1e5 + 10, mod = 1e9 + 7;
int f[N];int qm(int a, int b){int res = 1 % mod;while(b){if(b & 1) res = 1ll * res * a % mod;a = 1ll * a * a % mod;b >>= 1;}return res;
}int main(){int a, b;cin>>a>>b;f[0] = qm(2, a);for(int j = 1; j <= b; j++){f[j] = ((1ll * f[j - 1] * (a + 1 - j)) % mod * qm(2 * j, mod - 2) % mod) % mod;}cout<<f[b];return 0;
}

13.编码(计算组合数)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include<iostream>
using namespace std;
const int N = 30;
int f[N][N];void init(){for(int i = 1; i < N; i++){for(int j = 0; j <= i; j++){if(j == 0) f[i][j] = 1;else f[i][j] = f[i - 1][j] + f[i - 1][j - 1];}}
}int main(){init();string s;cin>>s;int n = s.size();for(int i = 0; i < n - 1; i++){if(s[i] >= s[i + 1]){cout<<0;return 0;}}int ans = 0;// 加上位数比当前小的 for(int i = 1; i < n; i++) ans += f[26][i];//枚举当前每一位可以有多少种情况 for(int i = 0; i < n; i++){int m = s[i] - 'a';for(int j = 1; j <= m; j++){ans += f[26 - j][n - i - 1];}} // 加上自身 ans++;cout<<ans;return 0;
}

14.高低位交换(位运算)

在这里插入图片描述
思路:无符号整型 unsigned int 是 32 位整型,越界就等于取模了

#include<iostream>
using namespace std;int main(){unsigned int n;cin>>n;unsigned int res = (n >> 16) + (n << 16);cout<<res;return 0;
}

15.合并果子(贪心)

在这里插入图片描述

思路:每次取出两个最小的果子合并

#include<iostream>
#include<queue>
using namespace std;
const int N = 1e4 + 10;
priority_queue<int, vector<int>, greater<int>> q;
int n;int main(){cin>>n;int x;for(int i = 0; i < n; i++){cin>>x;q.push(x);}long long sum = 0;while(q.size() > 1){int a = q.top();q.pop();int b = q.top();q.pop();sum += a + b;q.push(a + b);}cout<<sum;return 0;
}

16.陶陶摘苹果(升级版)(贪心)

在这里插入图片描述
思路:按照每个苹果所需要的力气升序排序,一个一个摘

#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1e5 + 10;
pair<int, int> q[N];
int n, m, a, b;bool cmp(const pair<int, int>& pp, const pair<int, int>& qq){if(pp.second != qq.second) return pp.second < qq.second;else return pp.first < qq.first; 
}int main(){cin>>n>>m;cin>>a>>b;int x, y;for(int i = 1; i <= n; i++){cin>>x>>y;q[i] = {x, y};}sort(q + 1, q + n + 1, cmp);int cnt = 0;for(int i = 1; i <= n; i++){if(m - q[i].second >= 0 && a + b >= q[i].first){cnt++;m -= q[i].second;}}cout<<cnt;return 0;
}

17.一元三次方程求解(二分)

在这里插入图片描述
思路:如果有一个区间左右端点相乘小于等于 0,那么这个区间存在一个零点

#include<iostream>
#include<algorithm>
using namespace std;
double a, b, c, d;double check(double x){double sum = a * x * x * x + b * x * x + c * x + d;return sum;
}int main(){cin>>a>>b>>c>>d;int f = 0;for(int i = -100; i <= 100; i++){if(f == 3) break;double l = i - 0.5, r = i + 0.5;if(check(l) * check(r) <= 0){if(check(l) >= 0){while(l + 0.00001 < r){double mid = (l + r) / 2;if(check(mid) > 0) l = mid;else r = mid; }}else if(check(l) < 0){while(l + 0.00001 < r){double mid = (l + r) / 2;if(check(mid) < 0) l = mid;else r = mid; }}f++;printf("%.2lf ", r);}}return 0;
}

18.八皇后(dfs)

在这里插入图片描述
思路:dfs 一个参数,维护每行,然后三个数组维护每一列、正对角线、斜对角线

#include<iostream>
#include<queue>
using namespace std;
const int N = 30;
int a[N];
int vis1[N], vis2[N], vis3[N];
int n;
int cnt;void dfs(int u){if(u > n){cnt++;if(cnt < 4){for(int i = 1; i <= n; i++){cout<<a[i]<<" ";}cout<<endl;}return;}for(int i = 1; i <= n; i++){if(!vis1[i] && !vis2[u + i] && !vis3[i - u + n]){vis1[i] = vis2[u + i] = vis3[i - u + n] = 1;a[u] = i;dfs(u + 1);vis1[i] = vis2[u + i] = vis3[i - u + n] = 0;}}
}int main(){cin>>n;dfs(1);cout<<cnt;return 0;
}

19.单词接龙(dfs)

在这里插入图片描述
思路:dfs 维护当前拼接成功的单词,用 map 记录每个单词用了几次

#include<iostream>
#include<map>
using namespace std;
const int N = 30;
map<string, int> mp;
string s[N];
int n;
int ans;string check(string s1, string s2){int len = s1.size();for(int i = 1; i < len; i++){if(s1.substr(len - i) == s2.substr(0, i)){string t = s1 + s2.substr(i);return t;}}return "加训";
}void dfs(string ss){if(ss.size() > ans) ans = ss.size();for(int i = 1; i <= n; i++){if(mp[s[i]] == 2) continue;string t = check(ss, s[i]);if(t != "加训"){mp[s[i]]++;dfs(t);mp[s[i]]--;}} 
}int main(){cin>>n;for(int i = 1; i <= n; i++){cin>>s[i];}char c;cin>>c;for(int i = 1; i <= n; i++){if(s[i][0] == c){mp[s[i]]++;dfs(s[i]);mp[s[i]]--;}}cout<<ans;return 0;
}

20.约瑟夫问题(取模)

在这里插入图片描述
思路:vector 下标从 0 开始,每次前进 m - 1 个位置,到第 n 个位置取模后会变成 0,正好符合条件

#include<iostream>
#include<vector>
using namespace std;
vector<int> v;
int n, m;int main(){cin>>n>>m;for(int i = 1; i <= n; i++) v.push_back(i);int cnt = 0;while(v.size()){cnt = (cnt + m - 1) % v.size();cout<<v[cnt]<<" ";v.erase(v.begin() + cnt);}return 0;
}

21.队列安排(模拟链表)

在这里插入图片描述
思路:结构体模拟双链表

#include<iostream>
#include<cstring>
using namespace std;
const int N = 1e5 + 10;
int n, m;
struct Point{int l, r; // 左边和右边的同学 int vis; // 标记是否删除 
}q[N];void add(int i, int j, int f){// j 插到 i 的右边 if(f == 1){q[j].r = q[i].r;q[j].l = i;q[i].r = j;q[q[j].r].l = j;}else{// j 插到 i 的左边 q[j].r = i;q[j].l = q[i].l;q[i].l = j;q[q[j].l].r = j;}
}void init(){q[0].r = 0, q[0].l = 0;add(0, 1, 1); // 1 插到 0 的右 
}int main(){cin>>n;int k, p;for(int i = 2; i <= n; i++){cin>>k>>p;add(k, i, p);}cin>>m;int x;for(int i = 1; i <= m; i++){cin>>x;q[x].vis = 1;}for(int i = q[0].r; i > 0; i = q[i].r){if(!q[i].vis) cout<<i<<" ";}return 0;
}

22.验证栈序列(模拟栈)

在这里插入图片描述
思路:按入栈顺序入栈,如果栈顶和当前 b 数组元素相等,那就弹出,如果入栈结束,栈不为空,说明 b 不是出栈序列

#include<iostream>
#include<stack>
using namespace std;
const int N = 1e5 + 10;
int a[N], b[N];
int n, q;int main(){cin>>q;while(q--){cin>>n;for(int i = 0; i < n; i++) cin>>a[i];for(int i = 0; i < n; i++) cin>>b[i];stack<int> q;int cnt = 0;for(int i = 0; i < n; i++){q.push(a[i]);while(q.top() == b[cnt]){q.pop();cnt++;if(q.empty()) break;}}if(q.empty()) cout<<"Yes"<<endl;else cout<<"No"<<endl;}return 0;
}

23.马的遍历(bfs)

在这里插入图片描述

#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
const int N = 410;
int g[N][N], vis[N][N], dis[N][N];
int n, m;int dx[] = {-1, -2, -2, -1, 1, 2, 2, 1};
int dy[] = {-2, -1, 1, 2, 2, 1, -1, -2};void bfs(int x, int y){queue<pair<int, int>> q;vis[x][y] = 1;dis[x][y] = 0;q.push({x, y});while(q.size()){auto it = q.front();q.pop();for(int i = 0; i < 8; i++){int a = it.first + dx[i], b = it.second + dy[i];if(a < 1 || a > n || b < 1 || b > m) continue;if(vis[a][b]) continue;vis[a][b] = 1;dis[a][b] = dis[it.first][it.second] + 1;q.push({a, b});}}
}int main(){memset(dis, -1, sizeof(dis));int x, y;cin>>n>>m>>x>>y;bfs(x, y);for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){cout<<dis[i][j]<<"    ";}cout<<endl;}return 0;
}

24.01迷宫(dfs)

在这里插入图片描述
思路:记录每个点属于哪个连通块,记录每个连通块的点个数

#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
const int N = 1e3 + 10, M = 1e5 + 10;
char g[N][N];
int vis[N][N];
int mp[M];
int n, m;
int cnt;int dx[] = {0, 0, -1, 1};
int dy[] = {-1, 1, 0, 0};void dfs(int x, int y, int z){vis[x][y] = z;mp[z]++;for(int i = 0; i < 4; i++){int a = x + dx[i], b = y + dy[i];if(a < 1 || a > n || b < 1 || b > n) continue;if(vis[a][b]) continue;if(g[a][b] == g[x][y]) continue;dfs(a, b, z);}
}int main(){cin>>n>>m;for(int i = 1; i <= n; i++){for(int j = 1; j <= n; j++){cin>>g[i][j];}}for(int i = 1; i <= m; i++){int x, y;cin>>x>>y;if(!vis[x][y]){dfs(x, y, i);cout<<mp[i]<<endl;vis[x][y] = i;}else{cout<<mp[vis[x][y]]<<endl;}}return 0;
}

25.村村通(并查集、dfs)

在这里插入图片描述
思路:把连通的点放在一个集合,只需要找多少个不连通的集合,需要加的边数就是这个数量减一

// 并查集
#include<iostream>
using namespace std;
const int N = 1e3 + 10;
int p[N];
int n, m;int fd(int x){if(x != p[x]){p[x] = fd(p[x]);}return p[x];
}// 合并两个集合 
void ff(int x, int y){int t1 = fd(x);int t2 = fd(y);p[t2] = t1;
}int main(){while(cin>>n && n != 0){cin>>m;int x, y;for(int i = 1; i <= n; i++){p[i] = i;}for(int i = 0; i < m; i++){cin>>x>>y;ff(x, y);}int cnt = 0;for(int i = 1; i <= n; i++){if(fd(i) == i){cnt++;}}cnt--;cout<<cnt<<endl;}return 0;
}// dfs
#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
const int N = 1e3 + 10;
vector<int> g[N];
int vis[N];
int n, m;void dfs(int x){if(!vis[x]);vis[x] = 1;for(int y : g[x]){if(!vis[y]){dfs(y);	}}
}int main(){while(cin>>n && n != 0){memset(vis, 0, sizeof(vis));cin>>m;int x, y;for(int i = 1; i < N; i++) g[i].clear();for(int i = 0; i < m; i++){cin>>x>>y;g[x].push_back(y);g[y].push_back(x);}int ans = 0;for(int i = 1; i <= n; i++){if(vis[i]) continue;dfs(i);ans++;}ans--;cout<<ans<<endl;}return 0;
}

26.两数之和(哈希表)

在这里插入图片描述

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {map<int, int> mp;int n = nums.size();for(int i = 0; i < n; i++){mp[nums[i]] = i + 1;}for(int i = 0; i < n; i++){int x = target - nums[i];if(mp[x] > 0 && i != mp[x] - 1){return vector<int> {i, mp[x] - 1};}}return vector<int> {0, 0};}
};

27.盛水最多的容器(双指针)

在这里插入图片描述

class Solution {
public:int maxArea(vector<int>& height) {int n = height.size();int l = 0, r = n - 1;int ans = 0, res = 0;while(l < r){res = min(height[l], height[r]) * (r - l);ans = max(ans, res);if(height[l] >= height[r]) r--;else l++;}return ans;}
};

28.最长公共前缀(模拟)

在这里插入图片描述
思路:枚举第一个字符串的长度,如果后面不满足相等,那就返回

class Solution {
public:string longestCommonPrefix(vector<string>& strs) {if (strs.empty()) return "";string prefix = "";for (int i = 0; i < strs[0].size(); ++i) {char ch = strs[0][i];for (int j = 1; j < strs.size(); ++j) {if (i >= strs[j].size() || strs[j][i] != ch) {return prefix;}}prefix += ch;}return prefix;}
};

29.寻找重复数(哈希、二分、双指针)

在这里插入图片描述
双指针思路:数组在 [1, n] 之内,所以慢指针每次走一步,快指针每次走两步,如果有环,肯定会相遇

// 哈希
class Solution {
public:int findDuplicate(vector<int>& nums) {map<int, int> mp;int n = nums.size();for(int i = 0; i < n; i++){mp[nums[i]]++;if(mp[nums[i]] == 2) return nums[i];}return 666;}
};// 二分
class Solution {
public:int findDuplicate(vector<int>& nums) {int n = nums.size();int l = 1, r = n - 1, ans = -1;while (l <= r) {int mid = (l + r) >> 1;int cnt = 0;for (int i = 0; i < n; ++i) {cnt += nums[i] <= mid;}if (cnt <= mid) {l = mid + 1;} else {r = mid - 1;ans = mid;}}return ans;}
};// 双指针
class Solution {
public:int findDuplicate(vector<int>& nums) {int slow = 0, fast = 0;do {slow = nums[slow];fast = nums[nums[fast]];} while (slow != fast);slow = 0;while (slow != fast) {slow = nums[slow];fast = nums[fast];}return slow;}
};

30.分割数组的最大值(二分答案)

在这里插入图片描述
思路:二分这个最大值

class Solution {
public:int check(vector<int>& nums, int x, int k){int sum = 0;int n = nums.size();int cnt = 1;for(int i = 0; i < n; i++){if(sum + nums[i] <= x){sum += nums[i];}else{sum = nums[i];cnt++;}}return cnt <= k;}int splitArray(vector<int>& nums, int k) {int n = nums.size();int sum = 0, res = 0;for(int i = 0; i < n; i++){sum += nums[i];res = max(res, nums[i]);}int l = res - 1, r = sum + 1;while(l + 1 < r){int mid = (l + r) / 2;if(check(nums, mid, k)) r = mid;else l = mid;}return r;}
};

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

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

相关文章

openstack-认证服务

整个OpenStack是由控制节点&#xff0c;计算节点&#xff0c;网络节点&#xff0c;存储节点四大部分组成。 openstack重要集成组件: Nova-计算服务&#xff1b;Neutron-网络服务&#xff1b;Swift-对象存储服务&#xff1b;Cinder-块存储服务&#xff1b;Glance-镜像服务Keys…

LeetCode-118. 杨辉三角【数组 动态规划】

LeetCode-118. 杨辉三角【数组 动态规划】 题目描述&#xff1a;解题思路一&#xff1a;Python 动态规划解题思路二&#xff1a;解题思路三&#xff1a;0 题目描述&#xff1a; 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&…

C语言进阶课程学习记录-第27课 - 数组的本质分析

C语言进阶课程学习记录-第27课 - 数组的本质分析 数组实验-数组元素个数的指定实验-数组地址与数组首元素地址实验-指针与数组地址的区别小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源于课程PPT&#xff0c;仅用于个人学习记录 数组 实验-数…

Hot100【十一】:编辑距离

// 定义dp[i][j]: 表示word1前i个字符转换到word2前j个字符最小操作数 // 初始化dp[m1][n1] class Solution {public int minDistance(String word1, String word2) {int m word1.length();int n word2.length();// 1. dp数组int[][] dp new int[m 1][n 1];// 2. dp数组初…

IO流:将文件从A复制到B,并实现复制过程进度条的实现

private static boolean copyFile(String strFileA, String strFileB) {// 使用try资源块 ,其中创建的流对象可以自动关闭try (FileInputStream inputStream new FileInputStream(strFileA); // 输入流FileOutputStream outputStream new FileOutputStream(strFileB) // 输…

【Linux】进程的状态(运行、阻塞、挂起)详解,揭开孤儿进程和僵尸进程的面纱,一篇文章万字讲透!!!!进程的学习②

目录 1.进程排队 时间片 时间片的分配 结构体内存对齐 偏移量补充 对齐规则 为什么会有对齐 2.操作系统学科层面对进程状态的理解 2.1进程的状态理解 ①我们说所谓的状态就是一个整型变量&#xff0c;是task_struct中的一个整型变量 ②.状态决定了接下来的动作 2.2运行状态 2.…

【闲聊】-网页划词翻译插件

英文之痛 作为程序猿&#xff0c;常常需要接触外文网站&#xff0c;以前很痛苦&#xff0c;现在大模型时代有很多智能工具可以直接翻译&#xff0c;翻译的虽然越来越好&#xff0c;但是还是不如直接看英文能理解本义&#xff0c;相信我&#xff0c;看翻译的理解和看原文的理解…

龙迅LT2611UXC 2 PORT LVDS桥接到HDMI 2.0,内置MCU,颗自行操作

龙迅LT2611UXC描述&#xff1a; LT2611UXC是一个高性能的LVDS到HDMI2.0的转换器&#xff0c;用于STB&#xff0c;DVD应用程序。LVDS输入可以配置为单端口或双端口&#xff0c;有1个高速时钟通道&#xff0c;3~4个高速数据通道&#xff0c;最大运行1.2Gbps/通道&#xff0c;可支…

gpu模拟器总体流程

1、开显存空间&#xff0c;初始化 这里显存就是运行模拟器的机器 2、创建页表&#xff0c;开设备端空间并复制数据 虚拟地址 3、划分形状&#xff0c;传入内核函数&#xff0c;形状参数和设备端数据地址、执行计算 4、复制数据回主机端&#xff0c;释放gpu资源

手写简易操作系统(二十五)--文件系统第三部分

前情提要 一、文件写入 1.1、file的写入 文件写入比较复杂&#xff0c;函数行数相当多 /*** description: 把buf中的count个字节写入file,成功则返回写入的字节数,失败则返回-1 * param {file*} file 文件* param {void*} buf 缓存* param {uint32_t} count 写入的字节数…

基于Java+SpringBoot+Vue民宿预约管理系统(源码+文档+部署+讲解)

一.系统概述 随着社会的不断进步与发展&#xff0c;人们经济水平也不断的提高&#xff0c;于是对各行各业需求也越来越高。利用计算机网络来处理各行业事务这一概念更深入人心&#xff0c;由于工作繁忙以及其他的原因&#xff0c;到实体店进行预约也是比较难实施的。如果开发一…

LLM Agents调研

LLM Agents调研 1、从 Copilot 到 Agent2、Agent概述3、agent框架2.1 框架介绍2.2框架对比 4、应用场景3.1single-agent应用3.2multi-agent 应用 5、agent功能选型参考&#xff1a; 1、从 Copilot 到 Agent 参考&#xff1a;https://mp.weixin.qq.com/s/vVUO-WRkp8FS3wKcfgu45…

【Vue3 + ElementUI】表单校验无效(写法:this.$refs[‘formName‘].validate((valid) =>{} ))

一. 表单校验 1.1 template模块 el-form 中 若校验&#xff0c;ref 和 rules 必须要有 <template><div style"padding:20px"><el-form ref"formName" :model"form" :rules"formRules" label-width"120px"…

C++进阶之路---何为智能指针?

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、为什么需要智能指针&#xff1f; 下面我们先分析一下下面这段程序有没有什么内存方面的问题&#xff1f;提示一下&am…

医疗图像分割 | 基于Pyramid-Vision-Transformer算法实现医疗息肉分割

项目应用场景 面向医疗图像息肉分割场景&#xff0c;项目采用 Pytorch Pyramid-Vision-Transformer 深度学习算法来实现。 项目效果 项目细节 > 具体参见项目 README.md (1) 模型架构 (2) 项目依赖&#xff0c;包括 python 3.8、pytorch 1.7.1、torchvision 0.8.2(3) 下载…

数据仓库实践

什么是数据仓库&#xff1f; 数据仓库是一个用于存储大量数据并支持数据分析与报告的系统。它通常用于集成来自不同来源的数据&#xff0c;提供一个统一的视图&#xff0c;以便进行更深入的分析和决策。 数据仓库的主要优势&#xff1f; 决策支持&#xff1a;为企业决策提供可靠…

渗透知识贴

文章目录 基础知识同源策略 常见web漏洞SQL注入漏洞 web中间件 基础知识 同源策略 同源策略是目前所有浏览器都实行的一种安全政策。A网页设置的 Cookie&#xff0c;B网页不能打开&#xff0c;除非这两个网页同源。所谓同源&#xff0c;是指&#xff1a;协议、端口、域名相同…

Windows Server 2008添加Web服务器(IIS)、WebDAV服务、网络负载均衡

一、Windows Server 2008添加Web服务器&#xff08;IIS&#xff09; &#xff08;1&#xff09;添加角色&#xff0c;搭建web服务器&#xff08;IIS&#xff09; &#xff08;2&#xff09;添加网站&#xff0c;关闭默认网页&#xff0c;添加默认文档 在客户端浏览器输入服务器…

面试算法-165-随机链表的复制

题目 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff0c;其中每个新节点的值都设为其对应的原节点的值。新节…

倒计时1天 | 袋鼠云春季发布会完整议程出炉!快快预约直播

在日新月异的数字化经济时代&#xff0c;企业和组织不断寻求利用先进技术构建自身的核心竞争力。其中&#xff0c;大数据与AI的深度融合正在成为推动企业实现新质生产力的关键路径。 在此背景下&#xff0c;袋鼠云举办春季发布会&#xff0c;以“DataAI&#xff0c;构建新质生…