【动态规划 完全背包 卡常】P9743 「KDOI-06-J」旅行|普及+

本文涉及知识点

C++动态规划 完全背包
C++记忆化搜索

「KDOI-06-J」旅行

题目描述

小 C 在 C 国旅行。

C 国有 n×mn\times mn×m 个城市,可以看做 n×mn\times mn×m 的网格。定义 (i,j)(i,j)(i,j) 表示在网格中第 iii 行第 jjj 列的城市。

该国有 222 种交通系统:

  • 对于所有 1≤i<n,1≤j≤m1\leq i<n,1\leq j\leq m1i<n,1jm(i,j)(i,j)(i,j)(i+1,j)(i+1,j)(i+1,j) 有一段由 L 公司修的单向铁路;
  • 对于所有 1≤i≤n,1≤j<m1\leq i\leq n,1\leq j<m1in,1j<m(i,j)(i,j)(i,j)(i,j+1)(i,j+1)(i,j+1) 有一段由 Z 公司修的单向铁路;

在每一个城市有一个售票口,(i,j)(i,j)(i,j) 城市的售票口可以用 ai,ja_{i,j}ai,j 元购买一张 L 公司的铁路票,bi,jb_{i,j}bi,j 元购买一张 Z 公司的铁路票。当你拥有一个公司的一张铁路票时,你可以乘坐这个公司的任意一段铁路,并消耗掉这张铁路票。注意,一张铁路票可以且仅可以使用一次。

小 C 原来在城市 (1,1)(1,1)(1,1)。他想要在 C 国旅游,但是他不想浪费任何的钱(即,当他旅游完毕时手上不应该有多余的车票)。对于所有 1≤x≤n,1≤y≤m1\leq x\leq n,1\leq y\leq m1xn,1ym,求他花 kkk 元钱并在城市 (x,y)(x,y)(x,y) 结束旅行的方案数,对 998244353998\ 244\ 353998 244 353 取模。

两种旅行方案不同,当且仅当小 C 经过的城市不同,或他在某一个城市购买的某家公司的铁路票数量不同。

输入格式

从标准输入读入数据。

输入的第一行包含三个正整数 n,m,kn,m,kn,m,k,表示网格的大小和钱的数目。

接下来 nnn 行,每行 mmm 个正整数,第 iii 行第 jjj 个正整数表示 ai,ja_{i,j}ai,j

接下来 nnn 行,每行 mmm 个正整数,第 iii 行第 jjj 个正整数表示 bi,jb_{i,j}bi,j

输出格式

输出到标准输出。

输出一共 nnn 行,每行 mmm 个整数,表示到每个点钱恰好花完并结束旅行的方案数,对 998244353998\ 244\ 353998 244 353 取模。

样例 #1

样例输入 #1

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

样例输出 #1

0 0 0
0 1 5
1 3 5

提示

【样例解释 #1】

(3,1)(3,1)(3,1) 的方案有:

  • (1,1)(1,1)(1,1) 购买 111 张 L 公司的铁路票;乘坐 L 公司的铁路到 (2,1)(2,1)(2,1);在 (2,1)(2,1)(2,1) 购买 111 张 L 公司的铁路票;乘坐 L 公司的铁路到 (3,1)(3,1)(3,1)

(2,2)(2,2)(2,2) 的方案有:

  • (1,1)(1,1)(1,1) 购买 111 张 L 公司的铁路票;乘坐 L 公司的铁路到 (2,1)(2,1)(2,1);在 (2,1)(2,1)(2,1) 购买 111 张 Z 公司的铁路票;乘坐 Z 公司的铁路到 (2,2)(2,2)(2,2)

(3,2)(3,2)(3,2) 的方案有:

  • (1,1)(1,1)(1,1) 购买 111 张 Z 公司的铁路票;乘坐 Z 公司的铁路到 (1,2)(1,2)(1,2);在 (1,2)(1,2)(1,2) 购买 222 张 L 公司的铁路票;乘坐 L 公司的铁路到 (2,2)(2,2)(2,2);乘坐 L 公司的铁路到 (3,2)(3,2)(3,2)
  • (1,1)(1,1)(1,1) 购买 111 张 L 公司的铁路票和 111 张 Z 公司的铁路票;乘坐 Z 公司的铁路到 (1,2)(1,2)(1,2);乘坐 L 公司的铁路到 (2,2)(2,2)(2,2);在 (2,2)(2,2)(2,2) 购买 111 张 L 公司的铁路票;乘坐 L 公司的铁路到 (3,2)(3,2)(3,2)
  • (1,1)(1,1)(1,1) 购买 111 张 L 公司的铁路票和 111 张 Z 公司的铁路票;乘坐 L 公司的铁路到 (2,1)(2,1)(2,1);乘坐 Z 公司的铁路到 (2,2)(2,2)(2,2);在 (2,2)(2,2)(2,2) 购买 111 张 L 公司的铁路票;乘坐 L 公司的铁路到 (3,2)(3,2)(3,2)

(2,3)(2,3)(2,3) 的方案有:

  • (1,1)(1,1)(1,1) 购买 111 张 L 公司的铁路票和 222 张 Z 公司的铁路票。在此之后,有 333 种方案可以从 (1,1)(1,1)(1,1) 乘坐两公司的铁路到 (2,3)(2,3)(2,3)
  • (1,1)(1,1)(1,1) 购买 111 张 Z 公司的铁路票;乘坐 Z 公司的铁路到 (1,2)(1,2)(1,2);在 (1,2)(1,2)(1,2) 购买 111 张 L 公司的铁路票和 111 张 Z 公司的铁路票。在此之后,有 222 种方案可以从 (1,2)(1,2)(1,2) 乘坐两公司的铁路到 (2,3)(2,3)(2,3)

【样例 #2】

见选手目录下的 travel/travel2.intravel/travel2.ans。这个样例满足测试点 7∼87\sim 878 的条件限制。

【样例 #3】

见选手目录下的 travel/travel3.intravel/travel3.ans。这个样例满足测试点 111111 的条件限制。

【数据范围】

对于所有数据保证:1≤n,m≤451\leq n,m\leq451n,m451≤k,ai,j,bi,j≤901\leq k,a_{i,j},b_{i,j}\leq901k,ai,j,bi,j90

测试点编号n,mn,mn,mkkkai,ja_{i,j}ai,jbi,jb_{i,j}bi,j
1∼31\sim313≤3\leq33≤5\leq55=1=1=1=1=1=1
4∼64\sim646≤10\leq1010≤10\leq1010=1=1=1=40=40=40
7∼87\sim878≤40\leq4040≤30\leq3030=1=1=1=45=45=45
9∼109\sim10910≤15\leq1515≤15\leq1515≤15\leq1515≤15\leq1515
111111≤15\leq1515≤30\leq3030≤30\leq3030≤30\leq3030
121212≤20\leq2020≤40\leq4040≤40\leq4040≤40\leq4040
13∼1513\sim151315≤25\leq2525≤50\leq5050≤50\leq5050≤50\leq5050
161616≤30\leq3030≤60\leq6060≤60\leq6060≤60\leq6060
171717≤35\leq3535≤70\leq7070≤70\leq7070≤70\leq7070
18∼1918\sim191819≤40\leq4040≤80\leq8080≤80\leq8080≤80\leq8080
202020≤45\leq4545≤90\leq9090≤90\leq9090≤90\leq9090

动态规划+完全背包

动态规划的状态表示

dp[r][c][rr][d][m] 表示到达(r,c),向右移动的票剩余rr张,向下移动的票剩余d张,钱剩余m的方案数。
空间复杂度:O(n5),由于只能右下,不能左上,故不会有环。
r,c都改成从0开始。第i个城市 c = i -r,故可省略c。空间复杂度:O(n4)。利用滚动空间降低空间复杂度,状态数没变。

动态规划的填表顺序

for i = 1 to (R+C-2) for(r = 0 to R-1 ) for(d =0 to K) for(rr =0 to K) for( m = k to 0)

动态规划的状态转移

为了避免买票顺序不同的造成的重复,我们先买向下的票,再买向右的票。
对于每种状态dp[r][d][rr][k],可以分三种子状态:
一,(r,i-r)所在城市没有买票。二,买了向下的票,没有买向右的票。三,买了向右的票,可能买了向下的票,也可能没有买向下的票。
前两种子状态有4种操作:右移 下移 买向右的票 买向下的票。
第三种子状态有三种操作:右移 下移 买向右的票

pre[i-1]个城市,cur表示第i个城市

cur[r][rr][d][m] = pre[r-1][rr][d+1][m]+pre[r][rr+1][d][m] 当前城市没买票。
如果rr > 0,m+1张相右的车票<=k
cur[r][rr][d][m] += cur[r][rr-1][d][m+1张相右的车票] 操作一
d > 0,m+1张相向下的车票<=k
cur[r][rr][d][m] += cur[r][rr][d-1][m+1张相下的车票] 操作二

单个状态时间复杂度:O(1)

动态规划的初始状态

pre全部为0,pre[0][0] 如果 钱和票数,能够一致则为1。否则为0。

动态规划的返回值

dp[x][y][0][0][0]
注意:本题3秒,O(4545454590) 约等于3.7e8,需要注意细节。

代码

核心代码

最后一个样例超时

#include <iostream>
#include <sstream>
#include <vector>
#include<map>
#include<unordered_map>
#include<set>
#include<unordered_set>
#include<string>
#include<algorithm>
#include<functional>
#include<queue>
#include <stack>
#include<iomanip>
#include<numeric>
#include <math.h>
#include <climits>
#include<assert.h>
#include<cstring>#include <bitset>
using namespace std;template<class T1, class T2>
std::istream& operator >> (std::istream& in, pair<T1, T2>& pr) {in >> pr.first >> pr.second;return in;
}template<class T1, class T2, class T3 >
std::istream& operator >> (std::istream& in, tuple<T1, T2, T3>& t) {in >> get<0>(t) >> get<1>(t) >> get<2>(t) ;return in;
}template<class T1, class T2, class T3, class T4 >
std::istream& operator >> (std::istream& in, tuple<T1, T2, T3, T4>& t) {in >> get<0>(t) >> get<1>(t) >> get<2>(t) >> get<3>(t);return in;
}template<class T = int>
vector<T> Read() {int n;scanf("%d", &n);vector<T> ret(n);for(int i=0;i < n ;i++) {cin >> ret[i];}return ret;
}template<class T = int>
vector<T> Read(int n) {vector<T> ret(n);for (int i = 0; i < n; i++) {cin >> ret[i];}return ret;
}template<int MOD = 1000000007>
class C1097Int
{
public:C1097Int(long long llData = 0) :m_iData(llData% MOD){}C1097Int  operator+(const C1097Int& o)const{return C1097Int(((long long)m_iData + o.m_iData) % MOD);}C1097Int& operator+=(const C1097Int& o){m_iData = ((long long)m_iData + o.m_iData) % MOD;return *this;}C1097Int& operator-=(const C1097Int& o){m_iData = (m_iData + MOD - o.m_iData) % MOD;return *this;}C1097Int  operator-(const C1097Int& o){return C1097Int((m_iData + MOD - o.m_iData) % MOD);}C1097Int  operator*(const C1097Int& o)const{return((long long)m_iData * o.m_iData) % MOD;}C1097Int& operator*=(const C1097Int& o){m_iData = ((long long)m_iData * o.m_iData) % MOD;return *this;}C1097Int  operator/(const C1097Int& o)const{return *this * o.PowNegative1();}C1097Int& operator/=(const C1097Int& o){*this /= o.PowNegative1();return *this;}bool operator==(const C1097Int& o)const{return m_iData == o.m_iData;}bool operator<(const C1097Int& o)const{return m_iData < o.m_iData;}C1097Int pow(long long n)const{C1097Int iRet = 1, iCur = *this;while (n){if (n & 1){iRet *= iCur;}iCur *= iCur;n >>= 1;}return iRet;}C1097Int PowNegative1()const{return pow(MOD - 2);}int ToInt()const{return (m_iData + MOD) % MOD;}
private:int m_iData = 0;;
};class Solution {public:typedef  C1097Int<998244353> BI;vector<vector<int>> Ans(const int K, vector<vector<int>>& a, vector<vector<int>>& b) {const int R = a.size(), C = a[0].size();const int S1 = (K+1);const int S2 = S1*(K + 1);const int S3 = S2 * (K + 1);const int S4 = S3*R;const int SizeBtye = sizeof(BI) * S4;auto pre = new BI[S4];memset(pre, 0, SizeBtye);for (int i = 0; i * a[0][0] <= K; i++) {int tmp = 0;for (int j = 0; (tmp=j * b[0][0] + i * a[0][0]) <= K; j++) {pre[S2*i+S1*j + K-tmp] = 1;}}auto cur = new BI[S4];auto cu2 = new BI[S4];vector<vector<int>> ans(R,vector<int>(C));for (int i = 1; i <= min(R + C - 2,K); i++) {memset(cur, 0, SizeBtye);memset(cu2, 0, SizeBtye);for (int r = max(0, i - (C - 1)); r <= min(i, R - 1); r++) {const int c = i - r;auto pr = cur + S3 * r;for (int d = 0; i+d <= K; d++){const auto pd = pr + S2 * d;for (int rr = 0; (i+rr+d) <= K; rr++) {const auto prr = pd + S1 * rr;const auto pre1 = S3 * r + S2 * d + S1 * (rr + 1);const auto pre2 = S3 * (r - 1) + S2 * (d + 1) + S1 * rr;const auto cur1 = S3 * r + S2 * (d - 1) + S1 * rr;const auto cur2 = S3 * r + S2 * d + (rr - 1) * S1;const auto cu21 = r * S3 + S2 * d + S1 * rr;for (int k = 0; (i+rr+d+k) <= K; k++) {if (rr + 1 <= K) {//本站没有买票,上一站是左边prr[k] += pre[pre1 +k];}if ((r>0)&&(d + 1 <= K)) {//本站没有买票,上一站是上边prr[k] += pre[pre2+k];}if ((d > 0) && (k + a[r][c] <= K)) {//本站至少买了一张向下的票prr[k] += cur[cur1 + k + a[r][c]];prr[k] -= cu2[cur1 + k + a[r][c]];}if ((rr > 0) && (k + b[r][c] <= K)) {//本站至少买了一张向右的票prr[k] += cur[cur2 + k + b[r][c]];cu2[cu21+k] += cur[cur2 +k + b[r][c]];}}}}ans[r][c] = pr[0].ToInt();}swap(pre, cur);}		return ans;}};int main() {
#ifdef _DEBUGfreopen("a.in", "r", stdin);
#endif // DEBUG	int n, m, K;cin >> n >> m >> K;vector<vector<int>> a(n, vector<int>(m)), b(n, vector<int>(m));for (int r = 0; r < n; r++){for (int c = 0; c <m ; c++) {cin >> a[r][c];}}for (int r = 0; r < n; r++){for (int c = 0; c < m; c++) {cin >>b[r][c];}}auto res = Solution().Ans(K, a, b);
#ifdef _DEBUG/*printf("K=%d", K);Out(a, ",a=");Out(b, ",b=");*/
#endif // DEBUG	for (auto& v : res) {for (auto& i : v) {printf("%d ", i);}printf("\r\n");}return 0;
}

单元测试

	int K;vector<vector<int>> a, b;TEST_METHOD(TestMethod11){K = 5, a = { {3,2,1},{2,1,3},{1,3,2} }, b = { {1,2,3},{2,3,1},{3,1,2} };auto res = Solution().Ans(K,a,b);AssertV({ {0,0,0},{0,1,5},{1,3,5} }, res);}TEST_METHOD(TestMethod12){K = 3, a = { {1,1,1},{1,1,1},{1,1,1} }, b = { {1,1,1},{1,1,1},{1,1,1} };auto res = Solution().Ans(K, a, b);AssertV({ {0,0,0},{0,0,17},{0,17,0} }, res);}TEST_METHOD(TestMethod13){K = 28, a.assign(38,vector<int>(40,1)), b.assign(38, vector<int>(40, 45));auto res = Solution().Ans(K, a, b);AssertEx(0, res[28][12]);}TEST_METHOD(TestMethod4){K = 2, a.assign(1, vector<int>(4, 1)), b.assign(1, vector<int>(4, 45));auto res = Solution().Ans(K, a, b);AssertV({ {0,0,0,0} }, res);}TEST_METHOD(TestMethod5){K = 2, a.assign(4, vector<int>(1, 1)), b.assign(4, vector<int>(1, 45));auto res = Solution().Ans(K, a, b);AssertV({ {0},{0},{2},{0}}, res);}

卡常

反复尝试了多次,瓶颈在memset,直接将一个memset改成将修改的值清0,就解决。

扩展阅读

我想对大家说的话
工作中遇到的问题,可以按类别查阅鄙人的算法文章,请点击《算法与数据汇总》。
学习算法:按章节学习《喜缺全书算法册》,大量的题目和测试用例,打包下载。重视操作
有效学习:明确的目标 及时的反馈 拉伸区(难度合适) 专注
闻缺陷则喜(喜缺)是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。
如果程序是一条龙,那算法就是他的是睛
失败+反思=成功 成功+反思=成功

视频课程

先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771
如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

测试环境

操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境: VS2022 C++17
如无特殊说明,本算法用**C++**实现。

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

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

相关文章

pytest框架-详解

目录 一、前言 二、pytest安装 2.1、安装 2.2、验证安装 2.3、pytest文档 三、pytest框架的约束 3.1、 python的命名规则 3.2、 pytest的命名规则 四、pytest的运行方式 4.1、主函数运行 4.2、命令行运行 五、pytest配置文件pytest.ini文件 六、前置和后置 七、as…

【递归、搜索与回溯算法】DFS解决FloodFill算法

FloodFill算法简介一、[图像渲染](https://leetcode.cn/problems/flood-fill/description/)二、[岛屿数量](https://leetcode.cn/problems/number-of-islands/description/)三、[岛屿的最大面积](https://leetcode.cn/problems/max-area-of-island/description/)四、[被围绕的区…

解决网络传输中可能出现的“粘包”

先理解核心问题&#xff1a;什么是“TCP粘包”&#xff1f; TCP 就像一条水管&#xff0c;数据通过水管从一端传到另一端。但它有个特点&#xff1a;不会按“发送时的小包”来划分&#xff0c;而是把数据当成连续的字节流。 比如&#xff1a; 你分两次发数据&#xff1a;第一次…

Docker搭建RSS订阅服务(freshRss+rsshub)

目录搭建freshRss1. 创建yml文件2. 创建容器3. 检查容器状态&#xff0c;正常运行则搭建成功4. 浏览器访问并配置数据库5. 开始使用搭建RssHub1. 创建yml文件2. 创建容器3. 检查容器状态&#xff0c;正常运行则搭建成功4. 浏览器访问生成RSS路由&#xff08;订阅地址&#xff0…

Spring 条件注解与 SPI 机制(深度解析)

在 Spring 及 Spring Boot 框架中&#xff0c;条件注解与 SPI 机制扮演着至关重要的角色&#xff0c;它们是实现自动配置、灵活控制 Bean 创建以及组件按需加载的关键所在。深入理解它们的底层实现与应用场景&#xff0c;既能帮助我们在面试中对答如流&#xff0c;又能在实际开…

Mac(二)Homebrew 的安装和使用

官网地址&#xff1a; https://brew.sh/官方文档&#xff1a; https://docs.brew.sh/Manpage Homebrew 是 macOS 上最强大的包管理器&#xff0c;让你轻松安装、更新和管理成千上万的开发工具、命令行程序&#xff08;如 wget, tree, ffmpeg&#xff09;甚至图形应用&#xff0…

Vue 侦听器(watch 与 watchEffect)全解析2

二、watchEffect:自动追踪依赖的侦听器 watchEffect 是更“简洁”的侦听器:它不需要手动指定数据源,而是自动追踪回调中用到的响应式状态——当这些状态变化时,自动触发回调。适用于“副作用与依赖绑定紧密”的场景(如依赖较多、无需区分新旧值)。 1. 基本用法(与 wat…

正点原子STM32H743配置 LTDC + DMA2D

开发板 正点原子STM32H743 阿波罗固件包 STM32Cube MCU Package for STM32H7 1.12.1开发工具 STM32CubeMX STM32CubeIDE根据原理图适配所有GPIO&#xff0c;并设置所有GPIO速度 Very Hight

北京JAVA基础面试30天打卡10

1.最佳左前缀原则是什么 Q:什么是MySQL索引I的最左匹配原则&#xff1f; A:最左匹配原则是指&#xff0c;在复合索引引中&#xff0c;查询条件需要按照索引列的顺序从最左侧列开始依次匹配。只有查询条件中的列按照索引的最左边列开始进行匹配,索引引才能被有效使用。 Q:能否举…

五、ZooKeeper、Kafka、Hadoop、HBase、Spark、Flink集群化软件的部署

五、ZooKeeper、Kafka、Hadoop、HBase、Spark、Flink集群化软件的部署 文章目录五、ZooKeeper、Kafka、Hadoop、HBase、Spark、Flink集群化软件的部署1.作用主要作用&#xff08;通俗说法&#xff09;对实战项目有什么用&#xff1f;&#xff08;直接举例&#xff09;2.集群化软…

下载及交叉编译glib,记录

下载及交叉编译glib&#xff0c;记录 编译参见这篇博客 嵌入式arm交叉编译移植bluez5.0最新教程_bluez移植-CSDN博客 编译命令有更新&#xff1a; make -j4 CFLAGS"-Wno-format-overflow" glib库的作用&#xff1a; glib 是 GNOME 项目下的一个基础库&#xff0c…

从 0 到 1 玩转Claude code(蓝耘UI界面版本):AI 编程助手的服务器部署与实战指南

前言 蓝耘 Coding UI 作为基于 Claude Code 的可视化工具&#xff0c;凭借对本地项目的深度掌控、与 Git 仓库的无缝衔接以及直观的交互界面&#xff0c;正在重构开发者的工作流。本文将带你一步步完成从环境搭建到实战使用的全流程&#xff0c;让这款工具真正成为你的编程「副…

docker使用指定的MAC地址启动podman使用指定的MAC地址启动

docker指定固定的mac地址 1】创建自定义桥接网络并配置 MAC 地址保留 docker network create --driver bridge custom_bridge2】启动容器并指定使用自定义网络 docker run -it --name your-container --network custom_bridge --mac-address 02:42:ac:11:00:02 your-image--mac…

抽奖程序web程序

使用html实现抽奖程序&#xff0c;没有后台&#xff0c;如果需要后续写个后台可以配置&#xff0c;没有过多的介绍&#xff0c;看代码吧 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><title>婚礼抽奖</…

【Python办公】Excel转json(极速版)-可自定义累加字段(如有重复KEY)

目录 专栏导读 🎯 亮点特性 ⚙️ 安装与运行 🖥️ 界面与区域说明 🚀 使用示例 💡 使用建议 ❓ 常见问题(FAQ) 🧱 技术要点 完整代码 🏁 结语 专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——…

JavaScript 防抖(Debounce)与节流(Throttle)

在 JavaScript 前端开发中&#xff0c;处理高频率事件&#xff08;如窗口调整、输入框输入、页面滚动&#xff09;时&#xff0c;如果不加以控制&#xff0c;会导致性能问题&#xff0c;如页面卡顿或资源浪费。防抖&#xff08;Debounce&#xff09;和节流&#xff08;Throttle…

探索无人机图传技术:创新视野与无限可能

近年来&#xff0c;无人机技术的飞速发展不仅改变了航空行业的格局&#xff0c;还深刻影响了多个领域的日常运作。无人机图传技术作为无人机的核心技术之一&#xff0c;凭借其精准的图像传输能力和高效的远程操作特性&#xff0c;正在成为各行各业的得力助手。从空中拍摄到实时…

Comfyui进入python虚拟环境

如果你的 Python 可执行文件&#xff08;python.exe&#xff09;位于 C:\comfyui\.venv\Scripts&#xff0c;那么 .venv 本身已经是一个虚拟环境&#xff0c;你只需要 激活它&#xff0c;而无需再创建一个新的虚拟环境。如何激活这个已有的虚拟环境&#xff1f; 1. 打开终端&am…

秋招春招实习百度笔试百度管培生笔试题库百度非技术岗笔试|笔试解析和攻略|题库分享

笔试介绍 百度非技术岗笔试采用的是规定时间统一笔试形式&#xff0c;管培生会有两场考试分别是7月底和8月中旬&#xff0c;其他非技术类岗位一般在8月中旬开始。 行测题必考&#xff0c;有些岗位考简答题&#xff0c;比如管培生以及产品经理等岗位。 笔试内容 笔试内容一…

低资源语言翻译:数据增强与跨语言迁移学习策略

文章目录一、低资源语言翻译的挑战1.1 数据稀缺性1.2 语言特性复杂1.3 评估困难二、数据增强策略&#xff08;Data Augmentation&#xff09;2.1 基于单语数据的增强2.2 基于平行数据的增强2.3 多模态数据增强三、跨语言迁移学习策略&#xff08;Cross-Lingual Transfer Learni…