P5289 [十二省联考 2019] 皮配 做题记录

题目 P5289 [十二省联考 2019] 皮配 - 洛谷 | 计算机科学教育新生态

参考题解 题解-十二省联考2019 皮配 - oier_hzy - 博客园

(第一次写这么难的题, 看着题解才勉强能写出来)

不考虑讨厌的导师, 超时的写法

设F[i][j] 为考虑完当前城市时, 选择蓝派系i人, 鸭派系j人的方案数

设两个辅助数组 P,G, P是如果当前城市选择蓝派系的方案数, G是当前城市选择红派系的方案数, citysum[zo]是当前城市的总人数,枚举当前城市中的每个学校, 如果当前学校是当前城市的第一个, 如果当前学校选择R派系P[i][j] += F[i - citysum[zo]][j],如果当前学校选择鸭派系P[i][j]+= F[i - citysum[zo]][j - s[it]] ,P[i][j] = F[i - citysum[zo]][j] + F[i - citysum[zo]][j - s[it]];  若当前学校不是城市中的第一个学校 P[i][j] = P[i][j] + P[i][j - s[it]]   使数组G = F, 对于数组G来说G[i][j] = G[i][j] + G[i][j - s[it]], 最后F[i][j] = P[i][j] + G[i][j]即为考虑完当前城市的方案数

最后整合答案, 因为选择红派系的人数不能超过c1, 即为i >= all - c1,i还要满足 i <= c0,同理,  all - d1 <= j <= d0

void solve(){int n, c;cin >> n >> c;int c0,c1,d0,d1;cin >> c0 >> c1 >> d0 >> d1;vector<int> s(n + 1), b(n + 1);vector<int> citysum(c + 1);vector<vector<int>> citysch(c + 1);int all = 0;for(int i = 1; i <= n; i++) cin >> b[i] >> s[i], citysum[b[i]] += s[i], citysch[b[i]].push_back(i), all += s[i];int k;cin >> k;while(k --){int x, y;cin >> x >> y;}vector<vector<int>> F(c0 + 1, vector<int> (d0 + 1));	F[0][0] = 1;for(int zo = 1; zo <= c; zo++) {if(citysch[zo].empty()) continue;vector<vector<int>> P(c0 + 1, vector<int> (d0 + 1)),G(c0 + 1, vector<int> (d0 + 1));for(auto it : citysch[zo]) {if(it == citysch[zo].front()) {for(int i = citysum[zo]; i <= c0; i++) {for(int j = 0; j <= d0; j++) {P[i][j] = F[i - citysum[zo]][j];if(j >= s[it]) P[i][j] = (P[i][j] + F[i - citysum[zo]][j - s[it]]) % mod;}}continue;}for(int i = 0; i <= c0; i++) {for(int j = d0; j >= s[it]; j--) P[i][j] = (P[i][j] + P[i][j - s[it]]) % mod;// 0;}}G = F;for(auto it : citysch[zo]) {for(int i = 0; i <= c0; i++) {for(int j = d0; j >= s[it]; j--) G[i][j] = (G[i][j] + G[i][j - s[it]]) % mod;			}}for(int i = 0; i <= c0; i++) {for(int j = 0; j <= d0; j++) F[i][j] = ((P[i][j] + G[i][j]) % mod + mod) % mod;}}int ans = 0;for(int i = max(0, all - c1); i <= c0; i++){for(int j = max(0,all - d1); j <= d0; j++) ans = (ans + F[i][j]) % mod/*, cout << F[i][j] << ' '*/;}cout << ans << endl;
}
考虑优化时间

一个学校选择是红蓝派系 , 鸭R派系是独立的, 所以分开考虑

设f[i]为选择蓝派系人数为i的方案数, g[j]为选择鸭派系为j的方案数

枚举每个城市 f[i] += f[i - citysum[zo]], 枚举每个学校 g[i] += g[i - s[j]]

对于f来说 all - c1<= i <= c0是满足条件的    g来说 all - d1 <= j <= d0 是满足条件的

答案即为(pre_f[c0] - pre_f[all - c1 - 1]) * (pre_g[d0] - pre_g[all - d0 - 1]);

考虑上讨厌的导师

记录每个城市是否有讨厌的导师, 每个学校是否有讨厌的导师

对于没有讨厌导师的城市 还用上一个优化时间的f的求法, 对于没有讨厌老师的学校, 也用g的求法

对于有讨厌的导师的城市, 采用第一次没有优化时间的写法

void solve1() {int n, c;cin >> n >> c;int c0,c1,d0,d1;cin >> c0 >> c1 >> d0 >> d1;vector<int> s(n + 1), b(n + 1), schhate(n + 1, -1);vector<int> citysum(c + 1), cityhate(n + 1);vector<vector<int>> citysch(c + 1);int all = 0;for(int i = 1; i <= n; i++) cin >> b[i] >> s[i], citysum[b[i]] += s[i], citysch[b[i]].push_back(i), all += s[i];int k;cin >> k;vector<int> f(c0 + 1), g(d0 + 1), pre_f(c0 + 1), pre_g(d0 + 1);pre_f[0] = f[0] = 1, pre_g[0] = g[0] = 1;while(k --){int x, y;cin >> x >> y;schhate[x] = y;cityhate[b[x]] = 1;}for(int i = 1; i <= n; i++) {if(schhate[i] == -1) {for(int j = d0; j >= s[i]; j--) g[j] = (g[j] + g[j - s[i]]) % mod;}}for(int i = 1; i <= d0; i++) pre_g[i] = (pre_g[i - 1] + g[i]) % mod;for(int i = 1; i <= c; i++) {if(!cityhate[i] && !citysch[i].empty()) {for(int j = c0; j >= citysum[i]; j--) f[j] = (f[j] + f[j - citysum[i]]) % mod;}}for(int i = 1; i <= c0; i++) pre_f[i] = (pre_f[i - 1] + f[i]) % mod;vector<vector<int>> F(c0 + 1, vector<int> (d0 + 1));	F[0][0] = 1;int Cs = 0, Ss = 0;for(int zo = 1; zo <= c; zo++) {if(citysch[zo].empty()) continue;if(!cityhate[zo]) continue;vector<vector<int>> P(c0 + 1, vector<int> (d0 + 1)),G(c0 + 1, vector<int> (d0 + 1));int cnt = 0;G = F;for(auto it : citysch[zo]) {if(schhate[it] == -1) continue;if(++cnt == 1) {if(!schhate[it]) {for(int i = c0; i >= citysum[zo]; i--) {for(int j = 0; j <= d0; j++) {P[i][j] =  F[i - citysum[zo]][j] % mod;}}}if(schhate[it] == 1)for(int i = c0; i >= citysum[zo]; i--) {for(int j = d0; j >= s[it]; j--) {P[i][j] =  F[i - citysum[zo]][j - s[it]] % mod;}}if(schhate[it] <= 1) {for(int i = 0; i <= c0; i++) {for(int j = d0; j >= s[it]; j--) {G[i][j] = (G[i][j] + G[i][j - s[it]]) % mod;}}}if(schhate[it] >= 2) {for(int i = c0; i >= citysum[zo]; i--) {for(int j = d0; j >= 0; j--) {P[i][j] = F[i - citysum[zo]][j];if(j >= s[it]) P[i][j] = (P[i][j] + F[i - citysum[zo]][j - s[it]]) % mod;}}}if(schhate[it] == 3) {for(int i = 0; i <= c0; i++) {for(int j = d0; j >= s[it]; j--) {G[i][j] = G[i][j - s[it]];}for(int j = 0; j < s[it]; j++) G[i][j] = 0;}}continue;}if(schhate[it] == 1)for(int i = citysum[zo]; i <= c0; i++) {for(int j = d0; j >= s[it]; j--) {P[i][j] =  P[i][j - s[it]] % mod;}for(int j = 0; j < s[it]; j++) P[i][j] = 0;}if(schhate[it] <= 1) {for(int i = 0; i <= c0; i++) {for(int j = d0; j >= s[it]; j--) {G[i][j] = (G[i][j] + G[i][j - s[it]]) % mod;}}}if(schhate[it] >= 2) {for(int i = citysum[zo]; i <= c0; i++) {for(int j = d0; j >= 0; j--) {if(j >= s[it]) P[i][j] = (P[i][j] + P[i][j - s[it]]) % mod;}}}if(schhate[it] == 3) {for(int i = 0; i <= c0; i++) {for(int j = d0; j >= s[it]; j--) {G[i][j] = G[i][j - s[it]];}for(int j = 0; j < s[it]; j++) G[i][j] = 0;}}}for(int i = 0; i <= c0; i++) {for(int j = 0; j <= d0; j++) F[i][j] = ((P[i][j] + G[i][j]) % mod + mod) % mod;}}ll ans = 0;for(int i=0;i<=c0;++i)for(int j=0;j<=d0;++j) {int l1 = max(0, all - c1 - i), r1 = c0 - i; if(l1 > r1) continue;int l2 = max(0, all - d1 - j), r2 = d0 - j; if(l2 > r2) continue;int vf = pre_f[r1]; if(l1) vf += mod - pre_f[l1-1];int vg = pre_g[r2]; if(l2) vg += mod - pre_g[l2-1];ans = (ans + 1ll * vf * vg % mod * F[i][j] % mod) % mod;}cout << ans << endl;}

有一个点TLE了, 卡一下常数, 每一次让G = F时间有点高, 每一次F数组并不是满的, 只需要记录到当前城市最多有几个人, 只要把不超过当前总人数的部分复制过去就行了

第一次AC代码

void solve1() {int n, c;cin >> n >> c;int c0,c1,d0,d1;cin >> c0 >> c1 >> d0 >> d1;vector<int> s(n + 1), b(n + 1), schhate(n + 1, -1);vector<int> citysum(c + 1), cityhate(n + 1);vector<vector<int>> citysch(c + 1);int all = 0;for(int i = 1; i <= n; i++) cin >> b[i] >> s[i], citysum[b[i]] += s[i], citysch[b[i]].push_back(i), all += s[i];int k;cin >> k;vector<int> f(c0 + 1), g(d0 + 1), pre_f(c0 + 1), pre_g(d0 + 1);pre_f[0] = f[0] = 1, pre_g[0] = g[0] = 1;while(k --){int x, y;cin >> x >> y;schhate[x] = y;cityhate[b[x]] = 1;}for(int i = 1; i <= n; i++) {if(schhate[i] == -1) {for(int j = d0; j >= s[i]; j--) g[j] = (g[j] + g[j - s[i]]) % mod;}}for(int i = 1; i <= d0; i++) pre_g[i] = (pre_g[i - 1] + g[i]) % mod;for(int i = 1; i <= c; i++) {if(!cityhate[i] && !citysch[i].empty()) {for(int j = c0; j >= citysum[i]; j--) f[j] = (f[j] + f[j - citysum[i]]) % mod;}}for(int i = 1; i <= c0; i++) pre_f[i] = (pre_f[i - 1] + f[i]) % mod;vector<vector<int>> F(c0 + 1, vector<int> (d0 + 1));	vector<vector<int>> P(c0 + 1, vector<int> (d0 + 1)),G(c0 + 1, vector<int> (d0 + 1));F[0][0] = 1;int Cs = 0, Ss = 0;for(int zo = 1; zo <= c; zo++) {if(citysch[zo].empty()) continue;if(!cityhate[zo]) continue;int cnt = 0;Cs += citysum[zo], Cs = min(Cs, c0);for(int i = 0; i <= Cs; i++) {for(int j = 0; j <= Ss; j++) G[i][j] = F[i][j];}for(int i = 0; i <= Cs; i++) {for(int j = 0; j <= Ss; j++) P[i][j] = 0;}for(auto it : citysch[zo]) {if(schhate[it] == -1) continue;int last = Ss;Ss += s[it], Ss = min(Ss, d0);if(++cnt == 1) {if(!schhate[it]) {for(int i = Cs; i >= citysum[zo]; i--) {for(int j = 0; j <= Ss; j++) {P[i][j] =  F[i - citysum[zo]][j] % mod;}}}if(schhate[it] == 1)for(int i = Cs; i >= citysum[zo]; i--) {for(int j = Ss; j >= s[it]; j--) {P[i][j] =  F[i - citysum[zo]][j - s[it]] % mod;}}if(schhate[it] <= 1) {for(int i = 0; i <= Cs; i++) {for(int j = Ss; j >= s[it]; j--) {G[i][j] = (G[i][j] + G[i][j - s[it]]) % mod;}}}if(schhate[it] >= 2) {for(int i = Cs; i >= citysum[zo]; i--) {for(int j = Ss; j >= 0; j--) {P[i][j] = F[i - citysum[zo]][j];if(j >= s[it]) P[i][j] = (P[i][j] + F[i - citysum[zo]][j - s[it]]) % mod;}}}if(schhate[it] == 3) {for(int i = 0; i <= Cs; i++) {for(int j = Ss; j >= s[it]; j--) {G[i][j] = G[i][j - s[it]];}for(int j = 0; j < s[it]; j++) G[i][j] = 0;}}continue;}if(schhate[it] == 1)for(int i = citysum[zo]; i <= Cs; i++) {for(int j = Ss; j >= s[it]; j--) {P[i][j] =  P[i][j - s[it]] % mod;}for(int j = 0; j < s[it]; j++) P[i][j] = 0;}if(schhate[it] <= 1) {for(int i = 0; i <= Cs; i++) {for(int j = Ss; j >= s[it]; j--) {G[i][j] = (G[i][j] + G[i][j - s[it]]) % mod;}}}if(schhate[it] >= 2) {for(int i = citysum[zo]; i <= Cs; i++) {for(int j = Ss; j >= 0; j--) {if(j >= s[it]) P[i][j] = (P[i][j] + P[i][j - s[it]]) % mod;}}}if(schhate[it] == 3) {for(int i = 0; i <= Cs; i++) {for(int j = Ss; j >= s[it]; j--) {G[i][j] = G[i][j - s[it]];}for(int j = 0; j < s[it]; j++) G[i][j] = 0;}}}for(int i = 0; i <= Cs; i++) {for(int j = 0; j <= Ss; j++) F[i][j] = ((P[i][j] + G[i][j]) % mod + mod) % mod;}}ll ans = 0;for(int i=0;i<=Cs;++i)for(int j=0;j<=Ss;++j) {int l1 = max(0, all - i - c1), r1 = c0 - i;if(r1 < l1) continue;int l2 = max(0, all - j - d1), r2 = d0 - j;if(r2 < l2) continue;int a = pre_f[r1], b = pre_g[r2];if(l1) a = ((a - pre_f[l1 - 1]) % mod + mod) % mod;if(l2) b = ((b - pre_g[l2 - 1]) % mod + mod) % mod;ans += 1ll * a * b % mod * F[i][j] % mod;ans %= mod;}cout << ans << endl;}

简化整合之后代码

void solve1() {int n, c;cin >> n >> c;int c0,c1,d0,d1;cin >> c0 >> c1 >> d0 >> d1;vector<int> s(n + 1), b(n + 1), schhate(n + 1, -1);vector<int> citysum(c + 1), cityhate(n + 1);vector<vector<int>> citysch(c + 1);int all = 0;for(int i = 1; i <= n; i++) cin >> b[i] >> s[i], citysum[b[i]] += s[i], citysch[b[i]].push_back(i), all += s[i];int k;cin >> k;vector<int> f(c0 + 1), g(d0 + 1), pre_f(c0 + 1), pre_g(d0 + 1);pre_f[0] = f[0] = 1, pre_g[0] = g[0] = 1;while(k --){int x, y;cin >> x >> y;schhate[x] = y;cityhate[b[x]] = 1;}for(int i = 1; i <= n; i++) {if(schhate[i] == -1) {for(int j = d0; j >= s[i]; j--) g[j] = (g[j] + g[j - s[i]]) % mod;}}for(int i = 1; i <= d0; i++) pre_g[i] = (pre_g[i - 1] + g[i]) % mod;for(int i = 1; i <= c; i++) {if(!cityhate[i] && !citysch[i].empty()) {for(int j = c0; j >= citysum[i]; j--) f[j] = (f[j] + f[j - citysum[i]]) % mod;}}for(int i = 1; i <= c0; i++) pre_f[i] = (pre_f[i - 1] + f[i]) % mod;vector<vector<int>> F(c0 + 1, vector<int> (d0 + 1));	vector<vector<int>> G(c0 + 1, vector<int> (d0 + 1));F[0][0] = 1;int Cs = 0, Ss = 0;for(int zo = 1; zo <= c; zo++) {if(citysch[zo].empty()) continue;if(!cityhate[zo]) continue;Cs += citysum[zo], Cs = min(Cs, c0);for(int i = 0; i <= Cs; i++) {for(int j = 0; j <= Ss; j++) G[i][j] = F[i][j];}for(auto it : citysch[zo]) {if(schhate[it] == -1) continue;Ss += s[it], Ss = min(Ss, d0);if(schhate[it] == 1)for(int i = 0; i <= Cs; i++) {for(int j = Ss; j >= s[it]; j--) {F[i][j] =  F[i][j - s[it]] % mod;}for(int j = 0; j < s[it]; j++) F[i][j] = 0;}if(schhate[it] <= 1) {for(int i = 0; i <= Cs; i++) {for(int j = Ss; j >= s[it]; j--) {G[i][j] = (G[i][j] + G[i][j - s[it]]) % mod;}}}if(schhate[it] >= 2) {for(int i = 0; i <= Cs; i++) {for(int j = Ss; j >= 0; j--) {if(j >= s[it]) F[i][j] = (F[i][j] + F[i][j - s[it]]) % mod;}}}if(schhate[it] == 3) {for(int i = 0; i <= Cs; i++) {for(int j = Ss; j >= s[it]; j--) {G[i][j] = G[i][j - s[it]];}for(int j = 0; j < s[it]; j++) G[i][j] = 0;}}}for(int j = 0; j <= Ss; j++) {for(int i = Cs; i >= citysum[zo]; i--) F[i][j] = F[i - citysum[zo]][j];for(int i = 0; i < citysum[zo] && i <= Cs; i++) F[i][j] = 0;} for(int i = 0; i <= Cs; i++) {for(int j = 0; j <= Ss; j++) F[i][j] = (F[i][j] + G[i][j]) % mod;}}ll ans = 0;for(int i=0;i<=Cs;++i)for(int j=0;j<=Ss;++j) {int l1 = max(0, all - i - c1), r1 = c0 - i;if(r1 < l1) continue;int l2 = max(0, all - j - d1), r2 = d0 - j;if(r2 < l2) continue;int a = pre_f[r1], b = pre_g[r2];if(l1) a = ((a - pre_f[l1 - 1]) % mod + mod) % mod;if(l2) b = ((b - pre_g[l2 - 1]) % mod + mod) % mod;ans += 1ll * a * b % mod * F[i][j] % mod;ans %= mod;}cout << ans << endl;}

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

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

相关文章

【Vim Masterclass 笔记05】第 4 章:Vim 的帮助系统与同步练习

文章目录 Section 4&#xff1a;The Vim Help System&#xff08;Vim 帮助系统&#xff09;S04L14 Getting Help1 打开帮助系统2 退出帮助系统3 查看具体命令的帮助文档4 查看帮助文档中的主题5 帮助文档间的上翻、下翻6 关于 linewise7 查看光标所在术语名词的帮助文档8 关于退…

java Redisson 实现限流每秒/分钟/小时限制N个

1.引入maven包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.redisson</groupId><artifactId>red…

C# 标准数字格式字符串

总目录 前言 当前文章为 C# 中的格式设置(格式化字符串) 大全 中的一个小章节。 一、概述 1. 基本信息 标准数字格式字符串用于格式化通用数值类型。标准数字格式字符串采用 [format specifier][precision specifier] 的形式 format specifier 格式说明符&#xff0c;负责指…

网络分析工具-tcpdump

文章目录 前言一、tcpdump基础官网链接命令选项详解常规过滤规则tcpdump输出 一、tcpdump实践HTTP协议ICMP状态抓包 前言 当遇到网络疑难问题的时候&#xff0c;抓包是最基本的技能&#xff0c;通过抓包才能看到网络底层的问题 一、tcpdump基础 tcpdump是一个常用的网络分析工…

【微软,模型规模】模型参数规模泄露:理解大型语言模型的参数量级

模型参数规模泄露&#xff1a;理解大型语言模型的参数量级 关键词&#xff1a; #大型语言模型 Large Language Model #参数规模 Parameter Scale #GPT-4o #GPT-4o-mini #Claude 3.5 Sonnet 具体实例与推演 近日&#xff0c;微软在一篇医学相关论文中意外泄露了OpenAI及Claud…

springboot集成qq邮箱服务

springboot集成qq邮箱服务 1.获取QQ邮箱授权码 1.1 登录QQ邮箱 1.2 开启SMTP服务 找到下图中的SMTP服务区域&#xff0c;如果当前账号未开启的话自己手动开启。 1.3 获取授权码 进入上图中的【管理服务】后&#xff1a;在【安全设置中生成授权码】,也可以直接点击【继续生成…

Windows系统提示ffmpeg.dll丢失怎么解决?

一、了解ffmpeg.dll文件 ffmpeg.dll是FFmpeg项目的一个动态链接库文件&#xff0c;FFmpeg是一个开源的多媒体处理框架&#xff0c;能够解码、编码、转码、混流、过滤和播放几乎所有已知格式的音频和视频文件。当Windows系统提示ffmpeg.dll丢失时&#xff0c;通常意味着某个需要…

直观解读 JuiceFS 的数据和元数据设计(一)

大家读完觉得有意义和帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 1 JuiceFS 高层架构与组件2 搭建极简 JuiceFS 集群 2.1 搭建元数据集群2.2 搭建对象存储&#xff08;MinIO&#xff09; 2.2.1 启动 MinIO server2.2.2 创建 bucket2.3 下载 juicefs 客户端2.4 创…

分布式微服务项目___某污水处理项目

一.分布式微服务项目___污水处理项目 项目地址:https://gitee.com/yanyigege/collaborative-water-springboot.git ​ 1.项目背景 总公司在全国各地有处理污水的项目部,各项目部处理自己的污水,总部需要监控各地分项目部每天处理污水的原料用量,掌握各分部的污水处理情况 ​…

鸿蒙HarmonyOS开发:拨打电话、短信服务、网络搜索、蜂窝数据、SIM卡管理、observer订阅管理

文章目录 一、call模块&#xff08;拨打电话&#xff09;1、使用makeCall拨打电话2、获取当前通话状态3、判断是否存在通话4、检查当前设备是否具备语音通话能力 二、sms模块&#xff08;短信服务&#xff09;1、创建短信2、发送短信 三、radio模块&#xff08;网络搜索&#x…

TVS二极管选型【EMC】

TVS器件并联在电路中&#xff0c;当电路正常工作时&#xff0c;他处于截止状态&#xff08;高阻态&#xff09;&#xff0c;不影响线路正常工作&#xff0c;当线路处于异常过压并达到其击穿电压时&#xff0c;他迅速由高阻态变为低阻态&#xff0c;给瞬间电流提供一个低阻抗导通…

sqlalchemy-access库操作MS Access

因目前项目中数据处理的量稍大&#xff0c;为了方便和业务进行交互&#xff0c;对数据的加工和处理放到微软桌面数据库MS Access中。然后有些地方通过 Python 来操作 MS Access 数据库&#xff0c;用到 sqlalchemy-access库。本文对操作的要点做简单的描述。 之前写过一篇 Pyt…

UnityRenderStreaming使用记录(三)

测试UnityRenderStreaming在Ubuntu24.04.1LTS上的表现 先放上运行图操作系统 Ubuntu24.04.1LTSUnity测试工程环境相关修改遇到的问题 先放上运行图 操作系统 Ubuntu24.04.1LTS 系统下载地址 https://cn.ubuntu.com/download/desktop安装UnityHub https://blog.csdn.net/AWNUXC…

==和===的区别,被坑的一天

在 JavaScript 中&#xff0c; 和 都用于比较两个值&#xff0c;但它们有一个重要的区别&#xff1a; 1. (宽松相等运算符) 进行比较时&#xff0c;会 自动类型转换&#xff08;也叫做强制类型转换&#xff09;&#xff0c;即如果比较的两个值的类型不同&#xff0c;JavaScr…

Git的使用流程(详细教程)

目录 01.Git是什么&#xff1f; 1.1 Git简介 1.2 SVN与Git的最主要的区别 1.3 GIt主要特点 02.Git是干什么的&#xff1f; 2.1.Git概念汇总 2.2 工作区/暂存区/仓库 2.3 Git使用流程 03.Git的安装配置 3.1 Git的配置文件 3.2 配置-初始化用户 3.3 Git可视化…

使用Docker部署最新版JupyterHub

拉取镜像 docker pull jupyterhub/jupyterhub:latest启动镜像 docker run -d -p 8000:8000 --name jupyterhub jupyterhub/jupyterhub:latest jupyterhub进入容器 docker exec -it jupyterhub bash生成jupyterhub的配置文件 jupyterhub --generate-config# 有需要可以安装中…

liunx下载gitlab

1.地址&#xff1a; https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ 安装 postfix 并启动 yum install postfix systemctl start postfix systemctl enable postfix ssh服务启动 systemctl enable sshd systemctl start sshd开放 ssh 以及 http 服务&#xff0c…

【AI大模型】深入GPT-2模型细节:揭秘其卓越性能的秘密

目录 &#x1f354; GPT2的架构 &#x1f354; GPT2模型的细节 2.1 模型过程 2.2 GPT2工作细节探究 &#x1f354; 小结 学习目标 掌握GPT2的架构掌握GPT2的训练任务和模型细节 &#x1f354; GPT2的架构 从模型架构上看, GPT2并没有特别新颖的架构, 它和只带有解码器模块…

oceanbase集群访问异常问题处理

1.报错现象 2.问题排查 检查obproxy状态发现为不可用状态 重启obproxy 依次重启Obproxy集群 观察任务状态 重启完成 Obproxy状态正常 3.验证登录 登录成功

Echarts+vue电商平台数据可视化——webSocket改造项目

websocket的基本使用&#xff0c;用于测试前端能否正常获取到后台数据 后台代码编写&#xff1a; const path require("path"); const fileUtils require("../utils/file_utils"); const WebSocket require("ws"); // 创建WebSocket服务端的…