5.19

今天早上用洛天依的【数据删除】出了知更鸟,小保底79抽,赢赢赢,劳莹那么好的设计谁抽啊image

试玩了一下文心一言,让他给我写线段树启发式合并,写的还挺板的(?

以下为AI所作(不保证准确性

#include <bits/stdc++.h>  
using namespace std;  
  
const int MAXN = 1e5 + 5;  
const int MAXM = 4e6 + 5; // 假设每个节点的值域在 [1, MAXM] 内  
  
int n, m; // n 为序列长度,m 为值域大小(通常为 1e9 但实际存储时可以使用离散化)  
int a[MAXN], rt[MAXN]; // a 为原始序列,rt 存储每棵线段树的根节点  
  
struct Node {  
    int l, r, cnt; // 左子节点,右子节点,该节点表示的值域范围内元素的个数  
} tree[MAXM << 1];  
int tot; // 线段树节点总数  
  
void update(int &p, int l, int r, int x) {  
    if (!p) p = ++tot; // 如果节点为空,新建节点  
    if (l == r) {  
        tree[p].cnt++; // 如果是叶子节点,直接增加计数  
        return;  
    }  
    int mid = (l + r) >> 1;  
    if (x <= mid) update(tree[p].l, l, mid, x);  
    else update(tree[p].r, mid + 1, r, x);  
    tree[p].cnt = tree[tree[p].l].cnt + tree[tree[p].r].cnt; // 更新当前节点计数  
}  
  
int merge(int u, int v, int l, int r) 
{  
    if (!u || !v) return u | v; // 如果其中一个为空,返回另一个  
    if (l == r) {  
        tree[u].cnt += tree[v].cnt; // 如果是叶子节点,直接合并计数  
        return u;  
    }  
    int mid = (l + r) >> 1;  
    tree[u].l = merge(tree[u].l, tree[v].l, l, mid); // 递归合并左子树  
    tree[u].r = merge(tree[u].r, tree[v].r, mid + 1, r); // 递归合并右子树  
    tree[u].cnt = tree[tree[u].l].cnt + tree[tree[u].r].cnt; // 更新当前节点计数  
    return u; // 返回合并后的线段树根节点  
}  
  
// ... 离散化、建树等其他操作 ...  
  
// 假设 dfs 是你的深度优先遍历函数,你可以在这里进行线段树的合并  
void dfs(int u, int fa) 
{  
    // 对于 u 的每个子节点 v  
    for (int v : adj[u]) 
    { // adj[u] 是 u 的邻接表,表示 u 的所有子节点  
        if (v == fa) continue; // 避免重复遍历  
        dfs(v, u); // 先递归遍历子树  
        // 合并 v 的线段树到 u 的线段树上  
        rt[u] = merge(rt[u], rt[v], 1, m); // 假设值域是 1 到 m  
    }  
    // 在这里可以进行其他基于合并后线段树的操作  
}  
  
int main() 
{  
    // ... 读取输入、离散化、建树等操作 ...  
    dfs(1, 0); // 从根节点开始遍历并合并线段树  
    // ... 其他操作 ...  
    return 0;  
}

哈哈,和xrlong研究了一晚上怎么写bot,还干了点其他的事但是不重要,然后lxyt你都来了为啥还要走啊?不是很理解。

虽然我不抽劳莹但是全是劳莹的图啊

image

image

image

image

image

image

唉,又没学术。

现在已经没人能做到日更闲话了。

posted @ 2024-05-19 21:34  HS_xh  阅读(47)  评论(3编辑  收藏  举报
init();