Say 题选记(9.28 - 10.4)

news/2025/10/4 23:35:44/文章来源:https://www.cnblogs.com/Hengqwq/p/19120660

P5363 [SDOI2019] 移动金币

Staircase-Nim 加计数。
首先怎么转化成 Staircase-Nim 呢,可以把每个金币右边到下一个金币中间那些空的地方看成这个金币的石子,那么每次金币的向左移动就是把石子从右边金币的堆移到左边金币的堆。注意最右侧也有可能有空的部分,这一部分不属于任何金币。
那么总共就有 \(m + 1\) 堆,\(n-m\) 个石子。根据 Staircase - Nim 的结论,当从右往左数第奇(从 0 开始)数堆上的 Nim 和不为 0 时,先手必胜,否则先手必败。
由于有限制的只有奇数堆(共 \(D = \lfloor \frac{m + 1}{2} \rfloor\) 个),偶数堆的分法直接插板,那么可以考虑先只对奇数堆 dp,最后再合并答案。异或和为 0 有很强的性质,所有我们对先手必败做计数,然后总的方案 \(n \choose m\) 减一下就行。异或和为 0 等价于每一位上 1 的个数都是偶数,那么考虑按位 dp。状态是 \(f_{i,j}\) 考虑前 \(i\) 位,当前石子个数是 \(j\) 的方案数。转移就是考虑这一位放几个 \(1\),那么就是 \(f_{i,j} {D \choose k} \to f_{i + 1, j + k \times 2 ^{i + 1}}, k \text{ is even}\)
复杂度 \(O(nm \log n)\)

Code
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1.5e5 + 5, M = 55, mod = 1e9 + 9;
ll fac[N], inv[N], ifac[N], dp[21][N];
int n, m;
ll C(int n, int m){return fac[n] * ifac[m] % mod * ifac[n - m] % mod;
}
int main(){cin.tie(nullptr)->sync_with_stdio(0);cin >> n >> m;fac[0] = ifac[0] = inv[1] = fac[1] = ifac[1] = 1;for(int i = 2; i <= n; ++i){fac[i] = (fac[i - 1] * i) % mod;inv[i] = ((mod - mod / i) * inv[mod % i]) % mod;ifac[i] = (ifac[i - 1] * inv[i]) % mod; }n -= m;dp[0][0] = 1;int D = __lg(n), B = (m + 1) / 2;for(int i = 0; i <= D; ++i){for(int j = 0; j <= n; j += 2){for(int k = 0; k <= B; k += 2){int nxt = j + k * (1 << i);if(nxt > n) break;(dp[i + 1][nxt] += dp[i][j] * C(B, k)) %= mod;}}}ll ans = 0;for(int j = 0; j <= n; j += 2){(ans += dp[D][j] * C(n - j + m - B, m - B)) %= mod;}cout << (C(n + m, m) + mod - ans) % mod;return 0;
}

P4689 [Ynoi Easy Round 2016] 这是我自己的发明

先考虑换根,我们发现,可以通过分讨把换根去掉。具体来说,我们先以 1 为根,把 dfs 序列建出来。记当前的根是 \(rt\), 对于 \(u\) 的子树该如何表示,有如下分讨:

  1. 如果 \(u = rt\),那么 \(u\) 的子树是整棵树 \(T\)
  2. 如果 \(rt\) 在原来树上是 \(u\) 的子树中的某个点,记它来自 \(u\) 的儿子 \(v\) 的子树 \(S\)(这个可以倍增算)。那么这时 \(u\) 的子树是 \(T - S\)
  3. 如果 \(rt\) 不在 \(u\) 的子树中,那么 \(u\) 的子树没有变化。

以上三种情况都对应着 dfs 序列上的一段(或几段的并),因此可以变成序列问题,就是这道题了。

那么对于序列上的询问 \(f(l_1, r_1, l_2, r_2)\) 怎么做呢,记 \(g(x, l, r)\) 表示 \([l,r]\) 这段中有多少个数的颜色是 \(x\)。那么 \(f(l_1, r_1, l_2, r_2) = \sum_x g(x,l_1, r_1) \times g(x, l_2, r_2)\),变成 \(\text{1-side}\) 的,也就是,\(\sum_x (g(x, 1, r_1) - g(x, 1, l_1 - 1)) \times (g(x, 1, r_2) - g(x, 1, l_2 - 1))\)。展开之后,发现我们就是要求 \(G(l, r) = \sum_x g(x, 1, l) \times g(x, 1, r)\)

\((g(x, 1, l) + \Delta)g(x, 1, r)= g(x, 1, l)g(x, 1, r) + \Delta g(x, 1, r)\),因此 \(G(l, r)\) 可以 \(O(1)\) 拓展到相邻。考虑莫队。因为第一次写,就把一些莫队的东西也写这里了。莫队的基本思路是,按左端点所在的编号为第一关键字,右端点为第二关键字,升序排序。假设块长是 \(S\),右端点总的移动次数最大是块数乘 \(n\),左端点是块长乘询问数量 \(m\),也就是 \(n\times \frac{n}{S} + m \times S\),取块长是 \(S = \frac{n}{\sqrt m}\),复杂度是 \(n \sqrt m\)

这个序列弱化版就做完了。但是由于我们在 dfs 序列上拆询问拆的特别多,所以有 16 倍常数。发现大部分的查询都是 \(G(x, l, n)\) 的形式,因此考虑预处理一个端点是 \(n\) 的询问。发现这样要插入的询问就是 4 倍常数了。

Code
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = tuple<int, int>;
const int N = 1e5 + 5, M = 5e5 + 5;
vector<int> e[N];
int n, m, lg[N], a[N], V[N], S, cnt, f[N][21], dfn[N], siz[N], dep[N], tsp, _dfn[N];
ll g[N], sum[2][N], ans[M], nwans;
int getid(int x){ return (x - 1) / S + 1; }
void del(int op, int x){ x = a[_dfn[x]];nwans -= sum[op ^ 1][x];sum[op][x]--;
}
void add(int op, int x){x = a[_dfn[x]];nwans += sum[op ^ 1][x];sum[op][x]++;
}
struct node{int l, r, id, idx, k;
}q[M * 4];
void addq(int l, int r, int idx, int k){if(l > r) swap(l, r);if(l == 0) return;if(r == n) return ans[idx] += k * g[l], void();q[++cnt] = {l, r, getid(l), idx, k};
}
void ins(int l1, int r1, int l2, int r2, int idx){addq(r1, r2, idx, 1), addq(l1 - 1, r2, idx, -1),addq(r1, l2 - 1, idx, -1), addq(l1 - 1, l2 - 1, idx, 1); 
}
void dfs(int u, int fa){_dfn[dfn[u] = ++tsp] = u;dep[u] = dep[fa] + 1;f[u][0] = fa;for(int i = 1; (1 << i) <= dep[u]; ++i) f[u][i] = f[f[u][i - 1]][i - 1];siz[u] = 1;for(int v : e[u]){if(v != fa){dfs(v, u);siz[u] += siz[v];}}
}
int find(int v, int u){for(int i = lg[dep[v] - dep[u]]; i >= 0; --i)if(dep[f[v][i]] > dep[u]) v = f[v][i];return v;
}
int main(){cin.tie(nullptr)->sync_with_stdio(0);cin >> n >> m;for(int i = 1; i <= n; ++i){cin >> a[i];V[i] = a[i];lg[i] = lg[i >> 1] + 1;}sort(V + 1, V + 1 + n);int sizV = unique(V + 1, V + 1 + n) - V - 1;for(int i = 1; i <= n; ++i){a[i] = lower_bound(V + 1, V + 1 + sizV, a[i]) - V;}for(int i = 1; i < n; ++i){int u, v;cin >> u >> v;e[u].emplace_back(v);e[v].emplace_back(u);}dfs(1, 0);S = ceil(n / sqrt(m));for(int i = 1; i <= n; ++i) add(1, i);for(int i = 1; i <= n; ++i){add(0, i);g[i] = nwans;}int rt = 1;for(int i = 1; i <= m; ++i){int op;cin >> op;if(op == 1) cin >> rt, ans[i] = -1;else{vector<pii> tmp[2];int ver[2];cin >> ver[0] >> ver[1];for(int op : {0, 1}){int u = ver[op];if(rt == u) tmp[op].emplace_back(1, n);else if(dfn[u] <= dfn[rt] && dfn[rt] <= dfn[u] + siz[u] - 1){int v = find(rt, u);// cout << i << ' ' << u << ' ' << v << ' ' << dfn[v] << ' ' << siz[v] << '\n';tmp[op].emplace_back(1, dfn[v] - 1);tmp[op].emplace_back(dfn[v] + siz[v], n);}else tmp[op].emplace_back(dfn[u], dfn[u] + siz[u] - 1);}for(auto [l1, r1] : tmp[0]){for(auto [l2, r2] : tmp[1])ins(l1, r1, l2, r2, i);}}}sort(q + 1, q + 1 + cnt, [](node x, node y){return (x.id == y.id ? x.r < y.r : x.id < y.id);});memset(sum, 0, sizeof(sum));nwans = 0;int l = 0, r = 0;for(int i = 1; i <= cnt; ++i){auto [pl, pr, _, idx, k] = q[i];while(l > pl) del(0, l), --l;while(r < pr) ++r, add(1, r);while(l < pl) ++l, add(0, l);while(r > pr) del(1, r), --r;ans[idx] += k * nwans;}for(int i = 1; i <= m; ++i){if(ans[i] != -1) cout << ans[i] << '\n';}return 0;
}

P7115 [NOIP2020] 移球游戏

超级棒的构造题(下面颜色的说明 0 -index 和 1 -index 混着说了)。
先考虑怎样优秀地做出 \(n = 2\) 的情况。假设我们让 1 柱放颜色是 0 的那些,2 柱同理。设一开始 1 柱有 \(a\) 个颜色是 0 的球。那么我们先从 2 柱上拿 \(a\) 个球当空柱子上,然后从上到下遍历 1 柱,如果是 0,放到 2 柱,否则放到空柱上。这时候,2 柱上面的 \(a\) 个都是 0,空柱上面的 \(m - a\) 个都是 1。然后先把 \(a\) 个 0 放回 1 柱,然后把 1 也放回去。然后把 2 柱剩下的 \(m - a\) 个放到空柱上。这时 2 柱是空的了,那么我们把 1 柱上面的 \(m - a\) 个 1 放到 2 柱上。然后从上至下遍历空柱,如果是 0 放 1 柱,1 放 2 柱。然后就做完了,并且空柱仍然是 \(n + 1\)
操作次数是 \(a + m + m + (m - a) + (m - a) + m = 5m - a\)。取上界 \(5m\)
然后是一个超级经典的 trick。0 - 1 值域分治(也就是 cdq)。我们还是让第 \(i\) 个柱子放颜色是 \(i\)。考虑分治,假设我们现在处理的是柱子 \([l, r]\),我们的目标是让 \(\le mid\) 的那些全部在 \([l, mid]\) 里,让 \(> mid\) 的全部在 \([mid + 1, r]\) 里。这时就可以吧 \(\le mid\) 的视为 0,否则视为 1,按类似 \(n = 2\) 的做法做了。
具体来说,每次挑出左边一个仍有 1 的柱子 \(i\),和右边一个仍有 0 的柱子进行配对 \(j\)。如果两个柱子 0 的个数加起来 \(\ge m\),那么我们可以按上面的方法让 \(i\) 变成全 0,否则可以让 \(j\) 变成全 1。这样每次配对总能让仍需处理的柱子减少 1,这样我们 \(solve(l, r)\) 的复杂度就是 \(O(r - l + 1)\)。加上分治,操作次数上界是 \(5nm \log n\),复杂度也是这个。

Code
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
const int N = 55, M = 405;
vector<pii> ans;
int n, m, a[N][M], tp[N], em;
void move(int x, int y){assert(tp[y] < m && tp[x] > 0);a[y][++tp[y]] = a[x][tp[x]], tp[x]--;ans.emplace_back(x, y);
}
void print(int x){cout << "Debug " << x << ",the size is " << tp[x] << '\n';for(int i = 1; i <= tp[x]; ++i) cout << a[x][i] << ' ';cout << '\n';
}
void merge(int x, int y, int k){// cout << x << ' ' << y << '\n';int cnt = 0;for(int i = 1; i <= m; ++i) if(a[x][i] <= k) ++cnt;for(int i = 1; i <= cnt; ++i) move(y, em); while(tp[x]) ((a[x][tp[x]] <= k) ? move(x, y) : move(x, em));// if(tp[x] != 0){//     cout << x << ' ' << y << '\n';//     print(x), print(y), print(em);//     exit(0); // }assert(tp[x] == 0 && tp[y] == m);for(int i = 1; i <= cnt; ++i) move(y, x);for(int i = 1; i <= m - cnt; ++i) move(em, x);// assert(tp[y] == 0);while(tp[y]) move(y, em);for(int i = 1; i <= m - cnt; ++i) move(x, y);assert(tp[em] == m);for(int i = m; i >= 1; --i){if(a[em][i] <= k) {if(tp[x] < m) move(em, x);else move(em, y);}else{if(tp[y] < m) move(em, y);else move(em, x);}} assert(tp[x] == m), assert(tp[y] == m);assert(tp[em] == 0);
}
bool check(int x, int k, int op){for(int i = 1; i <= m; ++i) if((a[x][i] <= k) == op) return 0;return 1; 
}
void solve(int l, int r){if(l == r) return;int mid = (l + r) >> 1;int x = l, y = mid + 1;// print(x), print(y);while(x <= mid && y <= r){merge(x, y, mid);if(check(x, mid, 0)) ++x;if(check(y, mid, 1)) ++y; }solve(l, mid);solve(mid + 1, r);
}
int main(){cin.tie(nullptr)->sync_with_stdio(0);cin >> n >> m;em = n + 1;for(int i = 1; i <= n; ++i){for(int j = 1; j <= m; ++j){cin >> a[i][j];}tp[i] = m;}solve(1, n);cout << ans.size() << '\n';for(auto [x, y] : ans) cout << x << ' ' << y << '\n';return 0;
}

P7518 [省选联考 2021 A/B 卷] 宝石

考虑如何处理跨过 \(rt\) 的询问 \((u, v)\),可以拆成 \((u, rt)\)\((rt, v)\) 两部分。第一部分维护起点为 \(x\),开头是 1,最大能跳到数字为 \(f_x\) 的。第二部分维护末尾是数字 \(t\),最小能跳到的数字 \(g_t\)。然后把两边拼接起来就行。也就是找到到达 \(v\) 时,\(\max_{g_t \le f_u + 1} t\),可以 BIT,这样多一个 \(\log\)。但是我们发现这个 \(t\) 是可以二分的,那么直接做就行。

点分治什么的都是 trival 的了,注意回溯时各个数组也要回到上一个状态。

Code
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
using tpi = tuple<int, int, int>;
const int N = 2e5 + 5, inf = 1e9;
int n, m, T, c, p[N], f[N], g[N], h[N], idx[N], a[N], siz[N], mxsiz[N], rt, allsiz, ans[N], from[N];
bitset<N> done;
vector<int> e[N];
vector<pii> Q[N];
vector<tpi> query[N];
void chmax(int &x, int y){ x = max(x, y); }
void chmin(int &x, int y){ x = min(x, y); }
struct BIT{#define lb(i) (i & (-i))int tr[N], tp = 0;vector<pii> op[N];void upd(int x, int k){++tp; op[tp].clear();for(int i = x; i <= m; i += lb(i)){op[tp].emplace_back(i, tr[i]);chmax(tr[i], k);}}int qry(int x){int ret = 0;for(int i = x; i; i -= lb(i)) chmax(ret, tr[i]);return ret;}void back(){for(auto [x, y] : op[tp]) tr[x] = y;--tp;}
}tr;
void erase(int u){idx[a[u]] = idx[a[u] + 1] = 0;g[a[u]] = g[a[u] + 1] = inf;if(a[u]) g[a[u] - 1] = inf;
}
void clear(int u, int fa, int tp){erase(u);from[u] = tp;for(int v : e[u]){if(!done[v] && v != fa){clear(v, u, tp);} }
}
void init(int u, int fa){siz[u] = 1, mxsiz[u] = 0;for(int v : e[u]){if(!done[v] && v != fa){init(v, u);siz[u] += siz[v];chmax(mxsiz[u], siz[v]);}}chmax(mxsiz[u], allsiz - siz[u]);if(mxsiz[u] < mxsiz[rt]) rt = u;
}
void solve(int u, int fa){int bef = idx[a[u]];idx[a[u]] = u;h[u] = 1;chmax(h[u], h[idx[a[u] + 1]] + 1);f[u] = h[idx[1]];for(int v : e[u]){ if(!done[v] && v != fa){solve(v, u);}}idx[a[u]] = bef;
}
void getans(int u, int fa){int bef = g[a[u]]; if(a[u]) chmin(g[a[u]], min(a[u], g[a[u] - 1]));tr.upd(g[a[u]], a[u]);for(auto[v, idx] : Q[u]){if(f[v] <= 0) ans[idx] = tr.qry(1);else ans[idx] = max(f[v], tr.qry(f[v] + 1));}Q[u].clear();for(int v : e[u]){if(!done[v] && v != fa){getans(v, u);}}tr.back();g[a[u]] = bef;
}
void work(int u, vector<tpi> q){query[u].clear();for(int v : e[u]){if(done[v]) continue;query[v].clear(), clear(v, u, v);}from[u] = 0;erase(u);f[u] = 0;for(int v : e[u]) if(!done[v]) solve(v, u);for(auto [x, y, idx] : q){if(from[x] != from[y]) Q[y].emplace_back(x, idx);else query[from[x]].emplace_back(x, y, idx);}getans(u, 0);done[u] = 1;for(int v : e[u]){if(done[v]) continue;init(v, u); allsiz = siz[v];rt = 0, mxsiz[rt] = inf, init(v, u);work(rt, query[v]);}
}
int main(){cin.tie(nullptr)->sync_with_stdio(0);cin >> n >> m >> c;for(int i = 1; i <= c; ++i){int x; cin >> x;p[x] = i;}for(int i = 1; i <= n; ++i){cin >> a[i];a[i] = p[a[i]];}for(int i = 1; i < n; ++i){int u, v; cin >> u >> v;e[u].emplace_back(v);e[v].emplace_back(u);}allsiz = n, rt = 0, mxsiz[rt] = inf;init(1, 0);cin >> T;for(int i = 1; i <= T; ++i){int u, v;cin >> u >> v;query[rt].emplace_back(u, v, i);}work(rt, query[rt]);for(int i = 1; i <= T; ++i){cout << ans[i] << '\n';}return 0;
}

P7519 [省选联考 2021 A/B 卷] 滚榜

最终排名和公布排名的顺序正好相反。因此我们可以考虑 \(n!\) 的枚举所有排列。这时限制只有 \(b_i\) 降序序并且 \(a_i + b_i \ge a_j + b_j (j > i)\),和 \(a_i + b_i > a_j (j < i)\)。每次我们都取最小的 \(b_i\),如果最后的总和小于等于 \(m\) 那么这个排名就是可行的。复杂度是 \(O(n^2 \times n!)\)。进一步地,我们发现实际上只需要排名最后的那个满足 \(a_n + b_n > a_j (j < n)\) 就行了。其他只需要满足前面那个性质,这样可以做到 \(O(n\times n!)\)

发现反过来按 \(b_i\) 升序考虑更加自然。考虑装压,\(f_{mask, i, b, sum}\) 表示已经考虑了 \(mask\) 中的队伍,最后一个队伍是 \(i\),最后放的 \(b_i\) 最小是 \(b\),此时 \(b\) 的总和是 \(sum\)。复杂度变成了 \(O(2 ^ n \times n \times m ^ 2)\),看起来更劣了?

一个重要的性质是 \(b_i\) 是升序的,因此如果我们考虑每次的增量 \(\delta\),这样需要满足的限制就只有 \(\delta \ge 0\),并且 \(a_j + (b_i + \delta) \ge a_i + b_i\) 了。\(delta\) 对于 \(sum\) 的贡献是一个简单的贡献提前计算 trick。也就是说,此时我们要记录的状态就变成了 \(f_{mask, i, sum}\)

这告诉我们,当某个序列满足单调性时,有时候可以 dp 增量,然后贡献提前计算考虑 \(sum\)

复杂度 \(O(2 ^ n \times n ^ 2 \times m)\)

Code
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define int long long
const int N = 14, M = 505;
int n, m, c[N][N], a[N], f[8193][N][M];
signed main(){cin.tie(nullptr)->sync_with_stdio(0);cin >> n >> m;for(int i = 1; i <= n; ++i) cin >> a[i];for(int i = 1; i <= n; ++i){for(int j = 1; j <= n; ++j){if(j == i) continue;c[i][j] = max(0ll, a[i] - a[j] + (j > i));}}for(int i = 1; i <= n; ++i){int tmp = 0;for(int j = 1; j <= n; ++j){tmp = max(tmp, a[j] + (j < i));}int b = tmp - a[i];if(b * n <= m) f[1 << (i - 1)][i][b * n] = 1;}for(int i = 0; i < (1 << n); ++i){int cnt = __builtin_popcount(i);  for(int j = 1; j <= n; ++j){if(i & (1 << (j - 1))){for(int sm = 0; sm <= m; ++sm){if(!f[i][j][sm]) continue;for(int k = 1; k <= n; ++k){if(!(i & (1 << (k - 1)))){int nxt = sm + c[j][k] * (n - cnt);if(nxt <= m) f[i | (1 << (k - 1))][k][nxt] += f[i][j][sm];}}}}}}int ans = 0, mask = (1 << n) - 1;for(int i = 1; i <= n; ++i){for(int j = 0; j <= m; ++j){ans += f[mask][i][j];}}cout << ans;return 0;
}

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

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

相关文章

专题网站建设策划方案浙江省住房和城乡建设厅官方网站

1.IDEA概述 IDEA全称InelliJ IDEA,是用于java语言开发的集成环境&#xff0c;它是业界公认的目前用于Java程序开发最好的工具。 集成环境&#xff1a;把代码编写&#xff0c;编译&#xff0c;执行&#xff0c;调试扽过多种功能综合到一起的开发工具。 下载&#xff1a;https…

做北京会所网站哪个好商城平台

文章目录 网络拓扑安装使用代理服务器设置隐藏者设置 使用古老的ccproxy实现代理服务器&#xff0c;仅做实验用途&#xff0c;禁止做违法犯罪的事情&#xff0c;后果自负。 网络拓扑 均使用Windows Server 2003系统 Router 外网IP&#xff1a;使用NAT模式 IP DHCP自动分配或者…

Excel表设置为细框线

Sub 设置为细框线()边框类型数组 = Array(xlEdgeLeft, xlEdgeTop, xlEdgeBottom, _xlEdgeRight, xlInsideVertical, xlInsideHorizontal)遍历已使用区域的每个单元格For Each 单元格 In ActiveSheet.UsedRangeFor Each…

US$28.5 CG A11DS 3 Buttons Wire Remote Used with CGDI K2 Remote Key Programmer 5pcs/lot

CG A11DS 3 Buttons Wire Remote Used with CGDI K2 Remote Key Programmer 5pcs/lot Package includes:5pc x CG A11DS 3 Buttons Wire Remote Pictures of CG A11DS 3 Buttons Wire Remote Used with CGDI K2 Remote…

延边网站开发depawo怎样提高网站权重

作者&#xff1a;Pablo Samuel Castro、Marc G. Bellemare 来源&#xff1a;Google AI Blog,机器之心摘要&#xff1a;在过去几年里&#xff0c;强化学习研究取得了多方面的显著进展。在过去几年里&#xff0c;强化学习研究取得了多方面的显著进展。这些进展使得智能体能够以超…

前端学习教程-VIte整合ECharts

ECharts 是一个强大的开源数据可视化库,而 Vite 是现代前端构建工具,两者结合可以高效开发数据可视化应用。本教程实现从创建 Vite 项目到使用 ECharts 实现各种图表。 一、环境准备 1. 创建 Vite 项目 首先确保已安…

月牙河做网站公司域名对网站排名的影响

2019独角兽企业重金招聘Python工程师标准>>> 软件的一处功能用到EasyUI的表单提交&#xff0c;返回一串字符串&#xff0c;这串字符串里有一段HTML代码&#xff0c;正常的情况下这段HTML代码里的双引号“ 是用 \ 转义过的。在IE中没问题&#xff0c;但是在Firefox和…

网站开发安全管理爬取漫画数据做网站

在项目管理中&#xff0c;图表作为一种直观的工具&#xff0c;帮助项目经理更有效的规划、监控和控制项目的各个方面&#xff0c;以下是项目经理常用的几张图表&#xff0c;它们在项目管理中发挥着至关重要的作用。 1、甘特图 甘特图&#xff08;Gantt Chart&#xff09;是最…

const不可改变解释

不能对const定义的变量本身重新赋值,但是可以通过其他方式更换变量里面的属性或元素(仅限对象类型和数组类型)。 “不能对const定义的变量本身重新赋值”这指的是 const 创建了一个只读的绑定(read-only binding)…

US$137.75 OTOFIX D1 One Year Update Service (Subsription Only)

OTOFIX D1 One Year Update Service (Subsription Only)1. Please send us the device serial number with picture to our Email 2. No Need Shipping. No refund service3. This is Only for Software Update, Witho…

在哪个平台做网站比较好义务网网站建设方案

工作中的焦虑 帮助团队建立复原力、处理不确定性和完成任务的8项策略 作者&#xff1a;阿德里安-戈斯蒂克、切斯特-埃尔顿和安东尼-戈斯蒂克 Anxiety at Work 8 Strategies to Help Teams Build Resilience, Handle Uncertainty, and Get Stuff Done By Adrian Gostick and…

地方门户网站的特点微信开发者模式在哪

从这个类中得到的类图&#xff0c;构划出了软件的大部分设计。 系统结构视图提供软件和整个系统结构最复杂的也是最优雅的描述。和通常的软件系统相比&#xff0c;在分布式嵌入系统中了解系统组件如何协同工作是非常重要的。毕竟&#xff0c;每个类图仅仅是一个系统的静态设计…

macOS Sequoia 15.7.1安全更新:修复字体解析器内存损坏漏洞

苹果发布了macOS Sequoia 15.7.1安全更新,修复了FontParser组件中的越界写入漏洞。该漏洞可能被恶意字体文件利用,导致应用程序意外终止或进程内存损坏。更新可通过Mac App Store或苹果官网下载获取。APPLE-SA-09-29…

AtCoder Beginner Contest 426 ABCDEF 题目解析

A - OS Versions 题意 有三种操作系统的版本,按发布时间顺序分别为 Ocelot、Serval、Lynx。 给定字符串 \(X, Y\),请判断版本 \(X\) 相比于版本 \(Y\) 的发布时间是否相同或更靠后(版本相同或更新)。 思路 直接判断…

前端学习教程-ElementPlus 教程

Element Plus 是基于 Vue 3 的企业级 UI 组件库,提供了丰富的预置组件,可帮助开发者快速构建高质量的前端界面。 一、安装 Element Plus 1. 环境要求Vue 3.0+ Node.js 14.0+2. 安装方式 (1)使用 npm 或 yarn 安装(…

镇江百度网站排名中交路桥建设有限公司官网

Linux磁盘管理&#xff08;二&#xff09;&#xff1a;LVM的创建、格式化和使用 一、LVM原理回顾 LVM的工作原理进行一个总结&#xff1a; (1)物理磁盘被格式化为PV&#xff0c;空间被划分为一个个的PE (2)不同的PV加入到同一个VG中&#xff0c;不同PV的PE全部进入到了VG的PE…

全网网站建设维护wordpress热门文章 图片

BLEU (Bilingual Evaluation Understudy&#xff0c;双语评估基准&#xff09;是一组度量机器翻译和自然语言生成模型性能的评估指标。BLEU指标是由IBM公司提出的一种模型评估方法,以便在机器翻译领域中开发更好的翻译模型。BLEU指标根据生成的句子与人工参考句子之间的词、短语…

AI训练的悖论:为什么越追求准确率越会产生幻觉?

在早期时,我曾让大模型撰写一位冷门历史人物的传记。它胸有成竹,娓娓道来:年代、成就,甚至几句“名言”,一应俱全。读起来简直像历史上真的存在一样。 唯一的问题是:大部分内容都不是真的。严格来说,模型并非“…

完整教程:lesson71:Node.js与npm基础全攻略:2025年最新特性与实战指南

完整教程:lesson71:Node.js与npm基础全攻略:2025年最新特性与实战指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family:…

此网站不支持下载视频怎么办wordpress的文要登录才能看

故障现象  一辆2010款起亚赛拉图车&#xff0c;搭载G4ED 发动机&#xff0c;累计行驶里程约为17.2万km。车主反映&#xff0c;车辆行驶正常&#xff0c;但组合仪表上的发动机转速表指针始终不动。 故障诊断  接车后进行路试&#xff0c;车速表、燃油存量表及发动机冷却温度…