主頁 >  其他 > CCSP2019T2_紙牌計數 | 2019蘇州CCSP大學生計算機系統與程式設計競賽

CCSP2019T2_紙牌計數 | 2019蘇州CCSP大學生計算機系統與程式設計競賽

2023-06-10 08:31:32 其他

題目描述

偶然在CSDN看到有人寫了CCSP2019T2_紙牌計數的題解,突然想起來是一個不錯的計數、dp題,
以前的U盤找不到了,記得當時存了一步步偏分到AC代碼,可惜,又想起來18年打鐵了,,,
此人的題解的鏈接 CCSP201902紙牌計數——解題報告
當年一共有5題,取自:https://www.sohu.com/a/347851686_610300
T1: 摘水果 fruit
T2:紙牌計數 card
T3:系統實作題 SQL 查詢
T4:系統策略題 調度器 scheduler
T5:系統結構體 評測魚 risc-v
T2的題面:

Description
我們有一副紙牌,它由 n 張牌組成,其中每張牌上標有一個數字(0 到 9)和一個大寫字母(A 到 Z),例如 2C、1F,

我們如下定義一個字串與一張牌之間的匹配關系:
字串 ?? 與任何一張牌都匹配,
第一位為 ? 而第二位為字母的字串,與任何一張標有該字母的牌匹配,例如,字串 ?C 與任何標有 C 的牌匹配,
第一位為數字而第二位為字母的字串,僅與內容完全一致的牌匹配,例如,字串 0C 與內容為 0C 的牌匹配,
不會出現第一位為數字而第二位為 ? 的字串,
我們稱 m 個字串 S1 ... Sm 與 m 張牌 C1 ... Cm 是匹配的,當且僅當:存在集合 { 1 , … , m } 上的一一映射 σ,使得對于任意 1 ≤ i ≤ m ,Si 與 C_σ(i) 匹配,

例如,對于 ?? 和 ?C 這兩個字串,可以匹配內容為 1C 和 2C 的牌,因為字串 ?? 與內容為 2C 的牌匹配且字串 ?C 與內容為 1C 的牌匹配,而 ?? 和 ?C 這兩個字串不能匹配內容為 1S 和 1P 的牌,

現在,給定 m 個字串,你需要求解:如果在 n 張牌中(無放回地)隨機選取 m 張,有多大概率與這些字串匹配?

Input
每個輸入檔案包含多個輸入資料,
第一行輸入該檔案的資料個數 T,
接下來依次輸入每個資料,每個資料包含三行,其中:
第一行輸入兩個正整數 n 和 m;
第二行輸入以空格分隔的 n 個字串,表示每張紙牌的內容(每個字串第一位為數字,第二位為大寫字母);
第三行輸入以空格分隔的 m 個字串,表示每個需要匹配的字串(每個字串第一位為數字,第二位為大寫字母;或第一位為 ?,第二位為大寫字母;或為 ??),

Output
對于每個輸入資料,輸出一行,表示所求的概率,概率需要以最簡分數 u/v 的形式輸出,其中 0 ≤ u ≤ v 且 u, v 為互質的整數,
特殊地,對于 0 請輸出 0/1,對于 1 請輸出 1/1,

Subtasks
對于所有的資料,1 <= m <= n <= 60, T <= 1000, $1 \leq m \leq n \leq 60; T \leq 1000$,
(11分)m=1;
(23分)m=n;
(27分)n=30 且所有的牌為 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C 0S 1S 2S 3S 4S 5S 6S 7S 8S 9S 0P 1P 2P 3P 4P 5P 6P 7P 8P 9P;
(22分)n=40 且所有的牌為 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C 0S 1S 2S 3S 4S 5S 6S 7S 8S 9S 0P 1P 2P 3P 4P 5P 6P 7P 8P 9P;
(17分)沒有特殊的限制,

題解

一時間不記得咋寫的了,按記憶口胡了一個做法,感覺復雜度有點假,但好像跑不滿,以后再看看吧:

  • 求概率/期望的時候,兩個獨立事件(即正交的情況)可以分開考慮,答案為每個事件概率的乘積,類似于積性函式中的一些理念,
  • n張牌的字母都是固定的,一般m個字串的字母也是固定的(除非是兩個問號??),
  • 考慮是否可以先分26個字母考慮,再考慮??,
  • rdp[j][k] 表示考慮到數字j用了k個問號的(不)合法情況數(合不合法,即是否存在重復計數的),把單個?的情況用組合數計數分配一下
  • 現在 ?? 還沒處理吧,所以??可以在這個層次上再套一層dp
  • val[i][w] 表示考慮到字母i已經用了w個??的合法方案數,最后背包dp一遍求答案
  • (不確定有沒有爆 long long,感覺復雜度可以減掉一個60?
#include <bits/stdc++.h>
#define fi first
#define se second
#define o2(x) (x) * (x)
#define mk make_pair
#define eb emplace_back
#define SZ(x) ((int)(x).size())
#define all(x) (x).begin(), (x).end()
#define clr(a, b) memset((a), (b), sizeof((a)))
#define rep(i, s, t) for(register int i = (s), LIM=(t); i < LIM; ++i)
#define per(i, s, t) for(register int i = (s), LIM=(t); i > LIM; --i)
#define GKD std::ios::sync_with_stdio(false);cin.tie(0)
#define my_unique(x) sort(all(x)), x.erase(unique(all(x)), x.end())
using namespace std;
typedef long long LL;
typedef long long int64;
typedef unsigned long long uint64;
typedef pair<int, int> pii;
// mt19937 rng(time(NULL));//std::clock()
// mt19937_64 rng64(chrono::steady_clock::now().time_since_epoch().count());
// shuffle(arr, arr + n, rng64);
inline int64 read() {
    int64 x = 0;int las = 0;char ch = getchar();
    while (ch < '0' || ch > '9') las |= (ch == '-'), ch = getchar();
    while (ch >= '0' && ch <= '9') x = (x << 3) + (x << 1) + ch - '0', ch =
    getchar(); return x = las ? -x : x;
}
inline void write(int64 x, bool las = true) {
    if (x == 0) {putchar('0'); if(las)putchar('\n');else putchar(' ');return;}
    if (x < 0) {putchar('-');x = -x;}
    static char s[23];
    int l = 0;
    while (x != 0)s[l++] = x % 10 + 48, x /= 10;
    while (l)putchar(s[--l]);
    if(las)putchar('\n');else putchar(' ');
}
int lowbit(int x) { return x & (-x); }
template <class T>
T big(const T &a1, const T &a2) {return a1 > a2 ? a1 : a2;}
template <class T>
T sml(const T &a1, const T &a2) {return a1 < a2 ? a1 : a2;}
template <typename T, typename... R>
T big(const T &las, const R &... r) {return big(las, big(r...));}
template <typename T, typename... R>
T sml(const T &las, const R &... r) {return sml(las, sml(r...));}
void debug_out() { cout << '\n'; }
template <typename T, typename... R>
void debug_out(const T &las, const R &... r) {
    cout << las << " ";
    debug_out(r...);
}
#ifdef LH_LOCAL
#define debug(...) cout << "[" << #__VA_ARGS__ << "]: ", debug_out(__VA_ARGS__);
#else
#define debug(...) ;
#endif
#define debug(...) ;
/*================Header Template==============*/
const int mod = 998244353;// 998244353
int ksm(int a, int64 b, int kmod = mod) {int res = 1;for(;b > 0;b >>= 1, a = (int64)a * a % kmod) if(b &1) res = (int64)res * a % kmod;return res;}
const int INF = 0x3f3f3f3f;
const int MXN = 2e5 + 5;
const int MXM = 5e6 + 7;
int n, m;
char card[65][3], str[65][3];
// 0 <= . <= 9, A <= . <= Z  -> 1 <= . <= 10
int cnt[30][15], need[30][15];
int sum[2][30];
LL fdp[30], rdp[15][65], val[30][65], dp[30][65];

LL COMB(int n, int m) {
    if(n == m) return 1;
    if(n < m) return 0;
    LL res = 1;
    for(int i = 0; i < m; ++i) {
        res *= (n - i);
        res /= i + 1;
    }
    return res;
}

void work() {
    n = read(), m = read();
    for(int i = 1; i <= n; ++i) scanf("%s", card[i]);
    for(int i = 1; i <= m; ++i) scanf("%s", str[i]);
    int flag = 1;
    for(int i = 1; i <= n; ++i) {
        cnt[card[i][1] - 'A'][card[i][0] - '0' + 1] ++;
        sum[0][card[i][1] - 'A'] ++;
    }
    LL ww = m;
    for(int i = 1; i <= m; ++i) {
        if(str[i][1] != '?') {
            if(str[i][0] != '?') need[str[i][1] - 'A'][str[i][0] - '0' + 1] ++;
            else need[str[i][1] - 'A'][0] ++;
            sum[1][str[i][1] - 'A'] ++;
            ww --;
        }
    }
    LL res = 1;
    for(int i = 0; i < 26; ++i) {
        if(sum[0][i] < sum[1][i]) {
            flag = 0;
            break;
        }
        for(int w = 0; w <= ww; ++w) {
            need[i][0] += w;
            fdp[i] = 1;
            memset(rdp, 0, sizeof(rdp));
            rdp[0][0] = 1;
            // rdp[j][k] 表示考慮到數字j用了k個問號的(不)合法情況數(合不合法,即是否存在重復計數的)
            // 把單個?的情況用組合數計數分配一下
            // ?? 還沒處理吧,所以??可以在這個層次上再套一層dp
            // val[i][w] 表示考慮到字母i已經用了w個??的合法方案數
            for(int j = 1; j <= 10; ++j) {
                if(cnt[i][j] < need[i][j]) {
                    flag = 0;
                    break;
                }
                fdp[i] = fdp[i] * COMB(cnt[i][j], need[i][j]);
                // for(int k = 0; k <= need[i][0]; ++k) rdp[j][k] = rdp[j - 1][k];
                if(1 || cnt[i][j] > need[i][j] && need[i][j] > 0) {
                    for(int h = 0; h <= cnt[i][j] - need[i][j]; ++h) {
                        for(int k = h; k <= need[i][0]; ++k) {
                            rdp[j][k] = rdp[j][k] + rdp[j - 1][k - h] * COMB(cnt[i][j], need[i][j] + h);
                            // debug(h, j, k, rdp[j][k])
                        }
                    }
                    // if(i == 'C' - 'A') debug(j)
                }else {
                    // if(i == 'C' - 'A') debug(j, rdp[j][1], rdp[j - 1][1])
                }
            }
            // rdp[10][0] = 0;
            fdp[i] = fdp[i] * COMB(sum[0][i] - (sum[1][i] - need[i][0]), need[i][0]);
            LL ret = rdp[10][need[i][0]];
            if(i == 'C' - 'A') debug(i, w, need[i][0], fdp[i], rdp[10][need[i][0]], fdp[i] - rdp[10][need[i][0]], ret, fdp[i] - ret)
            res *= (ret);
            need[i][0] -= w;
            val[i][w] = ret;
            if(i == 'C' - 'A' && val[i][w] > 1) debug(i, w, val[i][w])
        }
    }
    for(int j = 0; j <= ww; ++j) dp[0][j] = val[0][j];
    for(int i = 1; i < 26; ++i) {
        for(int j = 0; j <= ww; ++j) {
            for(int k = 0; k <= j; ++k) {
                dp[i][j] = dp[i][j] + dp[i - 1][j - k] * val[i][k];
            }
        }
    }
    res = dp[25][ww];
    LL allcase = COMB(n, m);
    LL agcd = __gcd(allcase, res);
    debug(allcase, res, res / agcd, allcase / agcd)
    if(flag == 0) {
        printf("0/1\n");
    }else {
        printf("%lld/%lld\n", res / agcd, allcase / agcd);
    }
    // 不確定有沒有爆 long long
    for(int i = 0; i < 26; ++i) {
        sum[0][i] = sum[1][i] = 0;
        for(int j = 0; j <= 10; ++j) {
            cnt[i][j] = need[i][j] = 0;
        }
        for(int j = 0; j <= ww; ++j) {
            val[i][j] = 0;
            dp[i][j] = 0;
        }
    }
}

int main() {
#ifdef LH_LOCAL
    freopen("c:/lh/system-lab/acm_code/OJ/in.txt", "r", stdin);
    // freopen("c:/lh/system-lab/acm_code/OJ/out.txt", "w", stdout);
#endif
    for(int cas = 1, tim = (1 ? read(): 1); cas <= tim; ++ cas) {
        work();
    }
    // 56160000
    debug(26*60*10*60*60)
#ifdef LH_LOCAL
    cout << "Debug log: time cost:" << 1.0 * clock() / CLOCKS_PER_SEC << "s" << endl;
#endif
    return 0;
}
/*
3
40 2
0C 1C 2C 3C 4C 5C 6C 7C 8C 9C 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C 0S 1S 2S 3S 4S 5S 6S 7S 8S 9S 0P 1P 2P 3P 4P 5P 6P 7P 8P 9P
?C 1C
40 16
0C 1C 2C 3C 4C 5C 6C 7C 8C 9C 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C 0S 1S 2S 3S 4S 5S 6S 7S 8S 9S 0P 1P 2P 3P 4P 5P 6P 7P 8P 9P
0C 0C 1C 2C ?C ?C ?C ?C 3S 4S ?S ?S 5P 6P ?P ?P
60 30
1A 1B 1C 1D 1E 1F 1G 1H 1I 1J 1K 1L 1M 1N 1O 1P 1Q 1R 1S 1T 1U 1V 1W 1X 1Y 1Z 0A 1A 2A 3A 4A 5A 6A 7A 8A 9A 1S 3S 5S 7S 9S 0U 2U 4U 6U 8U 2Z 3Z 5Z 7Z 1C 1C 1C 1C 1C 1C 1C 1C 1S 1P
1C 1C 1S 1P 2A 0A 1A 9A ?S ?U ?Z ?H ?O ?U ?? ?? ?? ?? ?? ?? ?S ?S ?S ?U ?U ?U ?Z ?Z ?C ?C

37/780
167384/2417388525  -> 4351984/x -> 5551 * 28 * 28
50442363273/29566145391215356 -> 201769453092/x

Sample
Input
15
6 1
0C 0S 0P 1C 1S 1P
1S
6 1
0C 0S 0P 1C 1S 1P
?C
6 2
0C 0S 0P 1C 1S 1P
?C ?C
6 2
0C 0S 0P 1C 1S 1P
?C ?S
6 4
0C 0S 0P 1C 1S 1P
?C ?C ?S ?P
6 4
0C 0S 0P 1C 1S 1P
0C ?C ?S ?P
6 4
0C 0S 0P 1C 1S 1P
?C ?C ?S ??
6 4
0C 0S 0P 1C 1S 1P
?C ?C ?? ??
6 4
0C 0S 0P 1C 1S 1P
?A ?? ?? ??
6 4
0C 0S 0P 1C 1S 1P
0C 0C ?S ?P
30 8
0C 1C 2C 3C 4C 5C 6C 7C 8C 9C 0S 1S 2S 3S 4S 5S 6S 7S 8S 9S 0P 1P 2P 3P 4P 5P 6P 7P 8P 9P
0C ?C ?C ?C 1S ?S 2P ?P
40 2
0C 1C 2C 3C 4C 5C 6C 7C 8C 9C 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C 0S 1S 2S 3S 4S 5S 6S 7S 8S 9S 0P 1P 2P 3P 4P 5P 6P 7P 8P 9P
?C 1C
40 2
0C 1C 2C 3C 4C 5C 6C 7C 8C 9C 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C 0S 1S 2S 3S 4S 5S 6S 7S 8S 9S 0P 1P 2P 3P 4P 5P 6P 7P 8P 9P
?C 1S
40 16
0C 1C 2C 3C 4C 5C 6C 7C 8C 9C 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C 0S 1S 2S 3S 4S 5S 6S 7S 8S 9S 0P 1P 2P 3P 4P 5P 6P 7P 8P 9P
0C 0C 1C 2C ?C ?C ?C ?C 3S 4S ?S ?S 5P 6P ?P ?P
60 30
1A 1B 1C 1D 1E 1F 1G 1H 1I 1J 1K 1L 1M 1N 1O 1P 1Q 1R 1S 1T 1U 1V 1W 1X 1Y 1Z 0A 1A 2A 3A 4A 5A 6A 7A 8A 9A 1S 3S 5S 7S 9S 0U 2U 4U 6U 8U 2Z 3Z 5Z 7Z 1C 1C 1C 1C 1C 1C 1C 1C 1S 1P
1C 1C 1S 1P 2A 0A 1A 9A ?S ?U ?Z ?H ?O ?U ?? ?? ?? ?? ?? ?? ?S ?S ?S ?U ?U ?U ?Z ?Z ?C ?C
Output
1/6
1/3
1/15
4/15
4/15
4/15
1/3
2/5
0/1
0/1
252/216775
37/780
1/39
167384/2417388525
50442363273/29566145391215356

Hint
對于分數 a/b,設 g=gcd(a,b),那么其最簡分數形式為 (a/g)/(b/g),


*/
ACMer,無怨無悔

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/554801.html

標籤:其他

上一篇:OpenELB 在 CVTE 的最佳實踐

下一篇:返回列表

標籤雲
其他(160719) Python(38219) JavaScript(25489) Java(18216) C(15237) 區塊鏈(8270) C#(7972) AI(7469) 爪哇(7425) MySQL(7241) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5873) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4589) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2435) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1984) 功能(1967) HtmlCss(1956) Web開發(1951) C++(1933) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1880) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • CCSP2019T2_紙牌計數 | 2019蘇州CCSP大學生計算機系統與程式設計

    ## 題目描述 偶然在CSDN看到有人寫了CCSP2019T2_紙牌計數的題解,突然想起來是一個不錯的計數、dp題。 以前的U盤找不到了,記得當時存了一步步偏分到AC代碼,可惜。又想起來18年打鐵了。。。 此人的題解的鏈接 [CCSP201902紙牌計數——解題報告](https://blog.cs ......

    uj5u.com 2023-06-10 08:31:32 more
  • OpenELB 在 CVTE 的最佳實踐

    > 作者:大飛哥,視源電子股份運維工程師, KubeSphere 社區用戶委員會廣州站站長,KubeSphere Ambassador。 ## 公司介紹 廣州視源電子科技股份有限公司(以下簡稱視源股份)成立于 2005 年 12 月,旗下擁有多家業務子公司。截至 2022 年 12 月 31 日,公 ......

    uj5u.com 2023-06-10 08:31:18 more
  • 【技識訓累】演算法中的動態規劃【二】

    博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ......

    uj5u.com 2023-06-10 08:31:09 more
  • selenium-wire簡介

    一.簡介 以下來自chatGPT回答: selenium-wire是一個基于selenium的Python庫,它擴展了selenium的功能,使得我們可以在自動化測驗中直接訪問和修改瀏覽器的網路請求和回應。selenium-wire可以攔截和修改HTTP請求和回應,從而可以在測驗程序中模擬 網路環境 ......

    uj5u.com 2023-06-10 08:31:05 more
  • ChatGPT的原理與前端領域實踐

    ## 一、ChatGPT 簡介 ### ChatGPT的火爆 ChatGPT作為一個web應用,自22年12月發布,僅僅不到3個月的時間,月活用戶就累積到1億。在此之前,最快記錄的保持者也需要9個月才達到月活1億。 ![](https://p3-juejin.byteimg.com/tos-cn-i ......

    uj5u.com 2023-06-10 08:31:00 more
  • 演算法基礎(一):串匹配問題(BF,KMP演算法)

    好家伙,學演算法, 這篇看完,如果沒有學會KMP演算法,麻煩給我點踩 希望你能拿起紙和筆,一邊閱讀一邊思考,看完這篇文章大概需要(20分鐘的時間) 我們學這個演算法是為了解決串匹配的問題 那什么是串匹配? 舉個例子: 我要在"彭于晏吳彥祖"這段字串中找到"吳彥祖"字串 這就是串匹配 這兩個演算法太抽象了 ......

    uj5u.com 2023-06-10 08:30:38 more
  • 華為云 UCS GitOps:輕松交付多集群云原生應用

    摘要:使用華為云 UCS GitOps 配置管理來交付您的多云應用。 本文分享自華為云社區《華為云 UCS GitOps:輕松交付多集群云原生應用》,作者:華為云云原生團隊。 隨著業務的全球化發展和應用多元化部署的趨勢,越來越多的客戶選擇通過混合云、多云模式來進行業務部署。選擇多云進行部署可以提高部 ......

    uj5u.com 2023-06-10 08:30:14 more
  • Top 5 Best Open Source Projects on GitHub 2023

    這里介紹Github上 5 個增長最快的開源專案,它們為原有的解決方案提供了更加具有成本效益的替代方案,并為開發者、資料分析師和企業提供了高可用的工具產品。利用開源的優勢,這5個專案拓展了強大而有效的解決方案,是值得收藏、分享以及探索嘗試的。 **1. ChatGLM-6B:Open Source ......

    uj5u.com 2023-06-10 08:29:59 more
  • 實體講解Flink 流處理程式編程模型

    摘要:在深入了解 Flink 實時資料處理程式的開發之前,先通過一個簡單示例來了解使用 Flink 的 DataStream API 構建有狀態流應用程式的程序。 本文分享自華為云社區《Flink 實體:Flink 流處理程式編程模型》,作者:TiAmoZhang 。 在深入了解 Flink 實時數 ......

    uj5u.com 2023-06-10 08:29:43 more
  • 差分陣列詳解

    **一維差分陣列** 假設給你一個陣列 nums ,先對區間 [a,b] 中每個元素加 3 ,在對區間 [c,d] 每個元素減 5 …… ,這樣非常頻繁的區間修改,常規的做法可以一個個計算。 ```java public void increment(int[] nums, int a, int b ......

    uj5u.com 2023-06-10 08:29:33 more