【動態規劃 完全背包 卡常】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,j?90

測試點編號n,mn,mn,mkkkai,ja_{i,j}ai,j?bi,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
英文地址,請注明出處:http://en.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…