当前位置: 首页 > news >正文

20250915

T1

ZZH 的游戏

二分答案之后,两个点轮流跳到当前能跳到的最小点。如果没法跳了且不都在 \(1\),那么无解。容易发现这是对的,可以通过建重构树维护。然后发现二分答案不是必要的,只需要每次没法跳的时候手动开大答案即可。复杂度瓶颈在建重构树的并查集。

代码
#include <iostream>
#include <string.h>
#include <vector>
using namespace std;
#define getchar() p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2) ? EOF : *p1++
char buf[1<<21], *p1, *p2, ch;
long long read() {long long ret = 0, neg = 0; char c = getchar(); neg = (c == '-');while (c < '0' || c > '9') c = getchar(), neg |= (c == '-');while (c >= '0' && c <= '9') ret = ret * 10 + c - '0', c = getchar();return ret * (neg ? -1 : 1);
}
int n, s, t;
vector<int> G1[1000005], G2[1000005];
int f1[1000005], f2[1000005];
int mn1[1000005], mn2[1000005];
int dsu[1000005];
int getf(int x) { return (dsu[x] == x ? x : (dsu[x] = getf(dsu[x]))); }
int main() {freopen("game.in", "r", stdin);freopen("game.out", "w", stdout);int tc = read();while (tc--) {for (int i = 1; i <= n; i++) G1[i].clear(), G2[i].clear();n = read();for (int i = 1; i < n; i++) {int u = read(), v = read();G1[u].emplace_back(v);G1[v].emplace_back(u);}for (int i = 1; i < n; i++) {int u = read(), v = read();G2[u].emplace_back(v);G2[v].emplace_back(u);}for (int i = 1; i <= n; i++) {dsu[i] = mn1[i] = i;for (auto v : G1[i]) {if (v < i) {int y = getf(v);dsu[y] = f1[y] = i, mn1[i] = min(mn1[i], mn1[y]);}}}for (int i = 1; i <= n; i++) {dsu[i] = mn2[i] = i;for (auto v : G2[i]) {if (v < i) {int y = getf(v);dsu[y] = f2[y] = i, mn2[i] = min(mn2[i], mn2[y]);}}}cin >> s >> t;int ans = s + t;while (mn1[s] != 1 || mn2[t] != 1) {while ((mn2[t] == 1 || mn1[s] + f2[t] > ans) && (mn1[s] == 1 || f1[s] + mn2[t] > ans)) ++ans;while (1) {bool c = 0;while (mn1[s] != 1 && f1[s] + mn2[t] <= ans) s = f1[s], c = 1;while (mn2[t] != 1 && mn1[s] + f2[t] <= ans) t = f2[t], c = 1;if (!c) break;}}cout << ans << "\n";}return 0;
}

T2

\(2p > n\) 的质数没用,扔掉。接下来构造用到剩下所有东西的方案。

把所有东西按照最小质因子分组。对于 \(12 \le 4p \le n\) 的质数,通过 \(2p - p - \cdots - 4p\) 将它接进 \(2\) 里面。对于 \(3p \le n, 4p > n\) 的质数,通过 \(2p_1 - 3p_1 - 3p_2 - 2p_2\) 把它们这样接进来。由于指不定有奇数还是偶数个,最后结尾可能是 \(2\) 也可能是 \(3\)。只需要在后面接 \(6\) 并顺带把 \(3\) 那一组放进来即可。对于 \(n < 12\) 的情况容易特判。

代码
#include <iostream>
#include <string.h>
#include <vector>
using namespace std;
int n, X, Y;
vector<int> vec[500005], ans;
vector<int> V;
bool vis[500005], ip[500005], mark[500005];
int main() {freopen("cycle.in", "r", stdin);freopen("cycle.out", "w", stdout);int tc;cin >> tc;while (tc--) {cin >> n;if (n >= 12) {ans.clear(); V.clear();for (int i = 2; i <= n; i++) vec[i].clear(), vis[i] = 0, mark[i] = 0;for (int i = 2; i <= n; i++) {if (mark[i]) continue;ip[i] = 1;if (i * 3 <= n && i * 4 > n) V.emplace_back(i);for (int j = i; j <= n; j += i) if (!mark[j]) vec[i].emplace_back(j), mark[j] = 1;}auto ins = [&](int x) {ans.emplace_back(x * 2);for (auto v : vec[x]) if (!vis[v]) ans.emplace_back(v);ans.emplace_back(x * 4);};if (V.size() & 1) V.emplace_back(-1);// 2X - 3X - 3Y - 2Yfor (int i = 0; i < (int)V.size(); i += 2) {X = V[i], Y = V[i + 1];ans.emplace_back(2 * X), ans.emplace_back(X), ans.emplace_back(3 * X);if (Y != -1) ans.emplace_back(3 * Y), ans.emplace_back(Y), ans.emplace_back(2 * Y);}for (auto v : ans) vis[v] = 1;for (int i = 3; i <= n; i++) if (ip[i] && i * 4 <= n) ins(i);for (auto v : ans) vis[v] = 1;for (int i = 2; i <= n; i += 2) if (!vis[i]) ans.emplace_back(i);cout << ans.size() << "\n";for (auto v : ans) cout << v << " ";} else for (int i = (cout << n / 2 << "\n", 2); i <= n; i += 2) cout << i << " ";cout <<" \n";}return 0;
}

T3

道路的眼泪

路径 \(\min\),想到重构树。从大往小加点建出,则每个点的 \(V\) 集合即为其所有祖先。

第一问:枚举 LCA 容易计算答案。

第二问:树形 dp 即可。

第三问:由于异或的优秀性质,对于 \(\bigoplus V\) 中的每个点 \(x\),可以把 \(S\) 集合 \(\oplus \{ x, f_x \}\),其中 \(f_x\)\(x\) 在重构树的祖先(没有就算了),从而得到对应的 \(S\)。那么这样我们就构造了 \(S\)\(V\) 的双射。那么就做完了。

代码
#include <iostream>
#include <string.h>
#include <vector>
#define int long long
using namespace std;
#define getchar() p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2) ? EOF : *p1++
char buf[1<<21], *p1, *p2, ch;
long long read() {long long ret = 0, neg = 0; char c = getchar(); neg = (c == '-');while (c < '0' || c > '9') c = getchar(), neg |= (c == '-');while (c >= '0' && c <= '9') ret = ret * 10 + c - '0', c = getchar();return ret * (neg ? -1 : 1);
}
const int P = 998244353;
int n, m, K, ans;
int pw[2000005];
int h1[2000005], n1[4000005], t1[4000005], e1;
int h2[2000005], n2[2000005], t2[2000005], e2;
void add1(int u, int v) { t1[++e1] = v, n1[e1] = h1[u], h1[u] = e1; }
void add2(int u, int v) { t2[++e2] = v, n2[e2] = h2[u], h2[u] = e2; }
int qpow(int x, int y = P - 2) {int ret = 1;while (y) {if (y & 1) ret = ret * x % P;y >>= 1;x = x * x % P;}return ret;
}
int fac[2000005], ifac[2000005], inv[2000005];
void Cpre(int n) {fac[0] = fac[1] = ifac[0] = ifac[1] = inv[0] = inv[1] = 1;for (int i = 2; i <= n; i++) {fac[i] = fac[i - 1] * i % P;inv[i] = (P - P / i) * inv[P % i] % P;ifac[i] = ifac[i - 1] * inv[i] % P;}
}
inline int C(int n, int m) { return (n < 0 || m < 0 || n < m) ? 0 : fac[n] * ifac[m] % P * ifac[n - m] % P; }
int str;
int sz[2000005];
void dfs1(int x, int d) {sz[x] = 1;int s = 0;for (int i = h2[x]; i; i = n2[i]) {int v = t2[i];dfs1(v, d + 1);sz[x] += sz[v];s += P - pw[sz[v]] + 1;}s = (s + pw[sz[x]] - 1) % P;ans += s * qpow(d, K) % P;
}
int dp[2000005];
void dfs2(int x) {dp[x] = 1;for (int i = h2[x]; i; i = n2[i]) {int v = t2[i];dfs2(v);dp[x] = dp[x] * dp[v] % P;}dp[x] = ((dp[x] - 1) * 2 * K + K + 1) % P;
}
int dsu[2000005];
int getf(int x) { return (dsu[x] == x ? x : (dsu[x] = getf(dsu[x]))); }
signed main() {Cpre(2000000);freopen("tearroad.in", "r", stdin);freopen("tearroad.out", "w", stdout);str = read(), n = read(), m = read(), K = read();pw[0] = 1;for (int i = 1; i <= n; i++) pw[i] = pw[i - 1] * 2 % P, dsu[i] = i;for (int i = 1; i <= m; i++) {int u = read(), v = read();add1(u, v);add1(v, u);}for (int i = n; i; i--) {for (int j = h1[i]; j; j = n1[j]) {int v = t1[j];if (v < i) continue;if (getf(v) != getf(i)) add2(i, dsu[v]), dsu[dsu[v]] = i;}}if (str / 100) {dfs1(1, 1);cout << ans % P << " ";}if ((str / 10) & 1) {dfs2(1);cout << dp[1] - 1 << " ";}if (str & 1) {ans = 0;for (int i = 1; i <= n; i++) ans += C(n, i) * ((i + K - 1) / K) % P;cout << ans % P << "\n";}return 0;
}

T4

田野

离散化,之后的每个格点相当于一个矩形。显然矩形只有四个角是重要的,对所有角跑最短路。

第一问,对于询问点求出在哪个矩形,四个方向过来取 \(\min\) 即可。

第二问,相当于对每个矩形要求它每个时刻扩展了多少点。那么从四个角开始,分别考察每个角扩张的过程。对于某一个角,它一开始扩张的时候贡献是 \(1\),之后每个时刻比前一个时刻的贡献多 \(1\)。而之后它可能会撞到另外一个角,那么撞完了之后发现每个时刻比前一个时刻的贡献增量就减少了 \(1\)。而之后它可能又要撞到另外一个角,那么撞完了之后每个时刻比前一个时刻的贡献增量就又少了 \(1\)。而之后它可能就要撞到它对面的那个角了,那这么一撞就相当于强制停止这个角的贡献了。于是我们只需要算出这个角分别什么时候撞到两个邻角,什么时候撞到对角,然后使用一些差分维护贡献即可。当然这三个时间的相对顺序也不是一定的,因此需要一些讨论。由于范围很大,需要将所有差分和询问离线处理。

总复杂度 \(\mathcal{O}(n^2\log n + q\log n)\)\(\mathcal{O}(n^2\log n + q\log (n^2 + q))\)。但也可能是类似的,反正就那样。能过。

代码
#include <iostream>
#include <algorithm>
#include <string.h>
#include <vector>
#include <queue>
#include <array>
#define int long long
using namespace std;
#define getchar() p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2) ? EOF : *p1++
char buf[1<<21], *p1, *p2, ch;
long long read() {long long ret = 0, neg = 0; char c = getchar(); neg = (c == '-');while (c < '0' || c > '9') c = getchar(), neg |= (c == '-');while (c >= '0' && c <= '9') ret = ret * 10 + c - '0', c = getchar();return ret * (neg ? -1 : 1);
}
const int inf = 0x3f3f3f3f3f3f3f;
int n, tp, q;
int d_x[1005], dxcnt;
int d_y[1005], dycnt;
/*
01
23
*/
struct node { int x, y, t, dis; };
inline bool operator<(node x, node y) { return x.dis > y.dis; }
priority_queue<node> Q;
bool vis[1005][1005][4];
int dist[1005][1005][4];
int ban[1005][1005];
void _dijkstra() {memset(dist, 63, sizeof dist);int sx = lower_bound(d_x + 1, d_x + dxcnt + 1, 0) - d_x;int sy = lower_bound(d_y + 1, d_y + dycnt + 1, 0) - d_y;Q.push((node) { sx, sy, 0, dist[sx][sy][0] = 0 });while (Q.size()) {node tmp = Q.top(); Q.pop();int x = tmp.x, y = tmp.y, t = tmp.t;if (vis[x][y][t]) continue;vis[x][y][t] = 1;auto chkupd = [&](int tx, int ty, int tt, int ww) {if (!ban[tx][ty] && dist[tx][ty][tt] > dist[x][y][t] + ww) Q.push((node) { tx, ty, tt, dist[tx][ty][tt] = dist[x][y][t] + ww });};if (t == 0) {if (x != 1) chkupd(x - 1, y, 1, 1);if (y != dycnt - 1) chkupd(x, y + 1, 2, 1);chkupd(x, y, 1, d_x[x + 1] - d_x[x] - 1);chkupd(x, y, 2, d_y[y + 1] - d_y[y] - 1);} else if (t == 1) {if (x != dxcnt - 1) chkupd(x + 1, y, 0, 1);if (y != dycnt - 1) chkupd(x, y + 1, 3, 1);chkupd(x, y, 0, d_x[x + 1] - d_x[x] - 1);chkupd(x, y, 3, d_y[y + 1] - d_y[y] - 1);} else if (t == 2) {if (x != 1) chkupd(x - 1, y, 3, 1);if (y != 1) chkupd(x, y - 1, 0, 1);chkupd(x, y, 3, d_x[x + 1] - d_x[x] - 1);chkupd(x, y, 0, d_y[y + 1] - d_y[y] - 1);} else {if (x != dxcnt - 1) chkupd(x + 1, y, 2, 1);if (y != 1) chkupd(x, y - 1, 1, 1);chkupd(x, y, 2, d_x[x + 1] - d_x[x] - 1);chkupd(x, y, 1, d_y[y + 1] - d_y[y] - 1);}}
}
struct Node { int op, s, d, x; };
vector<Node> vec;
int ans[200005];
inline int calc(int s, int d, int len) { int t = s + len * d; return (s * 2 + (len + 1) * d) * len / 2; }
void work() {for (int i = 1; i < dxcnt; i++) {for (int j = 1; j < dycnt; j++) {if (ban[i][j]) continue;int X = d_x[i + 1] - d_x[i], Y = d_y[j + 1] - d_y[j], t;if (X == Y && Y == 1) vec.push_back({ 1, 1, 0, dist[i][j][0] }), vec.push_back({ -1, 1, 0, dist[i][j][0] + 1 });else for (int k : { 0, 1, 2, 3 }) {t = Y - 2 - abs(dist[i][j][k] - dist[i][j][k ^ 2]);int t1 = (t >> 1) + (t & 1) * (k < (k ^ 2)) + max(dist[i][j][k], dist[i][j][k ^ 2]);t = X - 2 - abs(dist[i][j][k] - dist[i][j][k ^ 1]);int t2 = (t >> 1) + (t & 1) * (k < (k ^ 1)) + max(dist[i][j][k], dist[i][j][k ^ 1]);t = X + Y - 3 - abs(dist[i][j][k] - dist[i][j][k ^ 3]);int t3 = (t >> 1) + (t & 1) * (k < (k ^ 3)) + max(dist[i][j][k], dist[i][j][k ^ 3]);if (t1 < dist[i][j][k] || t2 < dist[i][j][k]) continue;(t1 > t2) ? swap(t1, t2) : void();vec.push_back({ 1, 1, 1, dist[i][j][k] });if (t3 < t1) {vec.push_back({ -1, t3 + 2 - dist[i][j][k], -1, t3 + 1 });continue;}vec.push_back({ -1, t1 + 2 - dist[i][j][k], -1, t1 + 1 });vec.push_back({ 1, t1 + 1 - dist[i][j][k], 0, t1 + 1 });if (t3 < t2) {vec.push_back({ -1, t1 + 1 - dist[i][j][k], 0, t3 + 1 });continue;}vec.push_back({ -1, t1 + 1 - dist[i][j][k], 0, t2 + 1 });vec.push_back({ 1, t1 - dist[i][j][k], -1, t2 + 1 });vec.push_back({ -1, max(0ll, t1 - dist[i][j][k] - (t3 - t2)), 1, min(t3 + 1, t2 + 1 + t1 - dist[i][j][k]) });}}}sort(vec.begin(), vec.end(), [](Node x, Node y) { return x.x == y.x ? (abs(x.op) > abs(y.op)) : (x.x < y.x); });int dd = 0, al = 0, k = 0, lst = 0;for (auto v : vec) {dd += calc(al, k, v.x - lst); al += k * (v.x - lst); lst = v.x;if (v.op == 0) ans[v.d] = dd;else if (v.op == 1) al += v.s, k += v.d, dd += v.s;else al -= v.s, k += v.d, dd -= v.s;}
}
array<int, 4> rect[405];
signed main() {freopen("field.in", "r", stdin);freopen("field.out", "w", stdout);n = read(), tp = read(), q = read();for (int i = 1; i <= n; i++) {int &x1 = rect[i][0], &x2 = rect[i][1], &y1 = rect[i][2], &y2 = rect[i][3];x1 = read(), x2 = read(), y1 = read(), y2 = read();d_x[++dxcnt] = x1, d_x[++dxcnt] = x2 + 1;d_y[++dycnt] = y1, d_y[++dycnt] = y2 + 1;}d_x[++dxcnt] = 0, d_x[++dxcnt] = 1;d_x[++dxcnt] = -inf, d_x[++dxcnt] = inf;d_y[++dycnt] = 0, d_y[++dycnt] = 1;d_y[++dycnt] = -inf, d_y[++dycnt] = inf;sort(d_x + 1, d_x + dxcnt + 1); dxcnt = unique(d_x + 1, d_x + dxcnt + 1) - d_x - 1;sort(d_y + 1, d_y + dycnt + 1); dycnt = unique(d_y + 1, d_y + dycnt + 1) - d_y - 1;for (int i = 1; i <= n; i++) {int x1, x2, y1, y2;x1 = lower_bound(d_x + 1, d_x + dxcnt + 1, rect[i][0]) - d_x;x2 = lower_bound(d_x + 1, d_x + dxcnt + 1, rect[i][1] + 1) - d_x;y1 = lower_bound(d_y + 1, d_y + dycnt + 1, rect[i][2]) - d_y;y2 = lower_bound(d_y + 1, d_y + dycnt + 1, rect[i][3] + 1) - d_y;++ban[x1][y1], --ban[x2][y1], --ban[x1][y2], ++ban[x2][y2];}for (int i = 1; i <= dxcnt; i++) {for (int j = 1; j <= dycnt; j++) ban[i][j] += ban[i - 1][j] + ban[i][j - 1] - ban[i - 1][j - 1];}_dijkstra();if (tp == 1) {while (q--) {int x = read(), y = read(), tx, ty, ans;tx = upper_bound(d_x + 1, d_x + dxcnt + 1, x) - d_x - 1;ty = upper_bound(d_y + 1, d_y + dycnt + 1, y) - d_y - 1;ans = min({ dist[tx][ty][0] + x - d_x[tx] + d_y[ty + 1] - y - 1, dist[tx][ty][1] + d_x[tx + 1] - x - 1 + d_y[ty + 1] - y - 1, dist[tx][ty][2] + x - d_x[tx] + y - d_y[ty], dist[tx][ty][3] + d_x[tx + 1] - x - 1 + y - d_y[ty]});cout << (ans >= inf ? -1 : ans) << "\n";}} else {for (int i = 1; i <= q; i++) vec.push_back({ 0, 0, i, read() }); work();for (int i = 1; i <= q; i++) cout << ans[i] << "\n";}return 0;
}

T1。

T3,构造双射以计数。树形 dp。

T4。对每个矩形分开考虑每个角独立的贡献。

相关文章:

20250915

20250915T1 ZZH 的游戏 二分答案之后,两个点轮流跳到当前能跳到的最小点。如果没法跳了且不都在 \(1\),那么无解。容易发现这是对的,可以通过建重构树维护。然后发现二分答案不是必要的,只需要每次没法跳的时候手动开大答案即可。复杂度瓶颈在建重构树的并查集。代码 #inc…...

Python Socket网络编程(4)

协程 微线程,切换执行 比如遇到IO等待的时候可以自动切换,提升线程利用率,多用在IO等待你想干点别的...

今日学习 dos命令和Java基础语法

今日学习 dos命令和Java基础语法 dos命令 常用快捷键ctrl+c 复制 ctrl+v粘贴 ctrl+x剪切 ctrl+z撤销 ctrl+s保存 ctrl+f查找 ctrl+shift+ESC 任务管理器(电脑死机时,可用于结束进程,explore,桌面进程) shift+delete永久删除 ALT+F4关闭窗口 ALT+TAB切换窗口/程序 win+R命令…...

课前问题列表

1.3 课前问题列表 方法相关问题static void changeStr(String x) {x = "xyz";}static void changeArr(String[] strs) {for (int i = 0; i < strs.length; i++) {strs[i] = strs[i]+""+i;}}public static void main(String[] args) { String x = &qu…...

switch中初始化变量

在 C++ 的 switch 语句中,switch 是 “跳转式” 控制结构,case 标签并非独立的语句块,若直接在 case 下初始化变量,可能导致变量作用域混乱、未初始化就被使用等问题,甚至触发编译错误。 1.跨 case 的变量作用域冲突 在某个 case 中初始化的变量,其作用域会覆盖后续 case…...

office2024免费永久激活安装包下载安装教程包含(下载安装配置激活)

大家好!最近总有人问我 Office 2024 专业增强版怎么装,今天特意整理这份超详细的 Office 2024 专业增强版下载安装教程,从电脑能不能装、在哪安全下载,到一步步安装激活,再到遇到问题怎么解决,全给大家说清楚,新手也能跟着装成功,建议收藏备用!目录一、Office 2024 专…...

vue2和vue3一时转不过来

以下是 Vue2 和 Vue3 在核心语法和功能上的主要区别,结合具体代码示例说明:一、响应式数据定义方式 1. ​​数据声明位置​​ // Vue2 选项式 API export default {data() {return {name: iwen,list: []}} }// Vue3 组合式 API import { ref, reactive } from vue export def…...

怎么查询电脑的登录记录及密码更改情况? - Li

怎么查询电脑的登录记录及密码更改情况? 写这个随笔的源头是我在一家公司上班,他们自己电脑打不开,一口咬定办公室的电脑莫名其妙打不开了,是我在被他们违规辞退后设定的密码,另将监控室电脑加密,且未告知公司任何人。 莫名其妙,因为本来就没设密码啊!(躺倒) 当然最后…...

C语言结构体中的内存对齐

C语言结构体内存对齐 在C语言编程中,结构体是一种非常重要的数据类型,它允许我们将不同类型的数据组合在一起。然而,当涉及到结构体在内存中的存储时,有一个关键的概念——内存对齐,这往往容易被忽视,但却对程序的性能和内存使用有着重要影响。 一、结构体大小计算的“理…...

该练习 DP 了!

区间DP 洛谷P3147Problem 定义 \(f[i][j]\) 存储从左端点 \(j\) 开始,能合并出 \(i\) 的右端点位置,将其设为 \(k\) 。 下面我们推转移方程。从题意可以看出,两个相邻的 \(i-1\) 能够合并出 \(i\) 。那么在 \(f[i][j]\) 后所对应的就是 \(f[i][k]\),这两个 \(i\)合并能够得…...

本周计划

周三: 上午 8:00~10:30 新领军 10:30~11:30 ZR NOIPD3 T4 下午模拟赛 晚上新领军习题课两节 周四: 上午 8:00~11:30 补好题分享 2 道 下午 2:00~4:30 补模拟赛 晚上 6:30~8:00 补模拟赛或好题分享 周五 上午 8:00~11:30 补好题分享 2 道 下午 2:00~5:30 准备下个周好题分享,…...

PPT文件太大?一招「无损」压缩图片,秒变传输小能手!

本文介绍的方法基于「PPT百科网」提供的在线分析工具,可智能评估并指导压缩过程,确保最佳效果。 PPT文件体积暴涨,99%的根源在于内部图片分辨率过高。直接使用PowerPoint自带的“压缩图片”功能虽然简单,但如同一刀切,可能导致在其他设备上播放时图片模糊,风险不可控。 「…...

9月16模拟赛

题目很难 主要是没有找对策略 就是没有及时去想部分分 怎么说呢 实力太弱 其实部分分拿完也会有个不错的成绩 无所谓 csp rp++!...

C++ 单例 Meyers Singleton(迈耶斯单例)

Meyers Singleton(迈耶斯单例)是 C++ 中实现单例模式的一种简洁高效的方法,由 C++ 专家 Scott Meyers 提出。其核心原理是利用局部静态变量的初始化特性保证单例的唯一性和线程安全性(C++11 及以后标准)。 1、核心原理局部静态变量的初始化特性 在 C++ 中,函数内的局部静…...

EF Core 与 MySQL:查询优化详解

EF Core 与 MySQL:查询优化详解 1. 使用 AsNoTracking 提高查询性能 基本用法// 常规查询(会跟踪实体变更) var products = context.Products.Where(p => p.Price > 100).ToList();// 使用 AsNoTracking(不跟踪实体变更,性能更好) var products = context.Product…...

短视频营销运营资深导师张伽赫,东莞绳木传媒创始人

东莞绳木传媒创始人张伽赫,短视频营销运营领域的资深导师。凭借其对行业趋势的敏锐洞察与实战经验,已成为企业数字化转型中短视频营销领域的标杆人物。他深耕短视频赛道多年,不仅构建了从账号定位、内容创作到流量转化的完整方法论,更通过绳木传媒为企业提供“AI+短视频”全…...

20250913

T4。T1 查询被包含的区间 将区间视为平面上的点 \((l, r)\),则每次询问的合法范围容易表示,是一个三角形。可以通过两步容斥转化为一个一维偏序和三个二维偏序。直接做就好了。代码 #include <iostream> #include <algorithm> #define lowbit(x) ((x) & (-(…...

9.13日总结

整体总结: 1.在自己的大样例出问题时要及时找老师考大样例 不要对着不对的大样例虚空调试 2.在考场上要自己造大样例 要造极限数据 这样可以防止数组越界 3.在数据不超过5e6的情况下 单log都是可以过的 只要极限数据跑的不是很慢就不用担心常数问题 4.在考场上要留一个小时以上…...

哇哇哇下雨了!——2025 . 9 . 16

哇哇哇下雨了! 感觉我从小就不喜欢晴天,反而钟爱雨天,其实每次下雨我心里就在想“哇哇哇又下雨了”。 可能跟打小的性格有关,也可能跟那个人有关。 当时我写了好多关于雨的小诗,无论是给她的还是给我自己的,内容也想不起来几句了。那会儿虽然每天的生活是无味的严苛的,但…...

奇思妙想(胡思乱想)

前言: 作为一个想象力 丰富 夸张的人,总有一些奇思怪想,浅浅记录一下呀~~ 可能会很奇怪以及不符合实际,毕竟是想象的【逃】 正文:圈养的猪会不会觉得人类的是自己的奴隶(因为一直好吃好喝的供着它们) 睡觉会不会就是脑电波以第一视角或第三视角的方式观察到平行宇宙的自…...

AI Compass前沿速览:GPT-5-Codex 、宇树科技世界模型、InfiniteTalk美团数字人、ROMA多智能体框架、混元3D 3.0

AI Compass前沿速览:GPT-5-Codex 、宇树科技世界模型、InfiniteTalk美团数字人、ROMA多智能体框架、混元3D 3.0AI Compass前沿速览:GPT-5-Codex 、宇树科技世界模型、InfiniteTalk美团数字人、ROMA多智能体框架、混元3D 3.0 AI-Compass 致力于构建最全面、最实用、最前沿的AI…...

C++中set与map的自定义排序方法详解

在C++标准模板库(STL)中,set和map是两种常用的关联容器,它们默认按照键的升序进行排序。但在实际开发中,我们经常需要根据特定需求对元素进行自定义排序。本文将详细介绍如何为set和map实现自定义排序。 默认排序行为 在深入了解自定义排序之前,我们先看一下set和map的默认…...

id

卷姬神经瓦特 2025.09.16本文来自博客园,作者:transformert,转载请注明原文链接:https://www.cnblogs.com/ac-network/p/19095883...

【汇总】Qt常用模块头文件

一、变量、命令、参数排序 项目.pro文件 模块导入 include 文件 中文说明 备注、示例ABCDEFGHIJKLM#include <QMessageBox> 信息提示窗口QMessageBox::about(this, "关于",“关于说明”);NOPQRSQT += serialport #include <QSerialPort> 串口控制类#inc…...

Advanced Algorithm —— Hashing and Sketching

Birthday Problem \(m\) 个人,\(n\) 天,没有两个人生日相同的概率为: \[\displaystyle{ \begin{align*} \Pr[\mathcal{E}]=\left(1-\frac{1}{n}\right)\cdot \left(1-\frac{2}{n}\right)\cdots \left(1-\frac{m-1}{n}\right) &= \prod_{k=1}^{m-1}\left(1-\frac{k}{n}\r…...

CF2136 Codeforces Round 1046 (Div. 2) 补题

题目标签B笛卡尔树的应用C有思维难度的 dp / 递推D交互题 利用曼哈顿距离反过来解坐标:二元线性方程组 考虑“问最值/极限情况”E二分图,边双连通分量 两条路径 -> 环 异或运算的性质 (见题解)题解:E. By the Assignment观察1:对于本题,每个边双连通分量内部的点权可…...

【IEEE出版、EI检索稳定】第四届云计算、大数据应用与软件工程国际学术会议(CBASE 2025)

第四届云计算、大数据应用与软件工程国际学术会议(CBASE 2025) 2025 4th International Conference on Cloud Computing, Big Data Application and Software Engineering 在这里看会议官网详情 2025年10月24-26日丨中国-成都(线上同步举办) 截稿日期:看官网 检索类型:IE…...

缺省源

自用,你不见得会用。 快读:点击查看代码 #define getc() getchar_unlocked() #define putc(a) putchar_unlocked(a) #define en_ putc(\n) #define e_ putc( )template<class T> inline T in() { T n = 0; char p = getc();while (p < -) p = getc();bool f = p == …...

97. 交错字符串

题目链接:97. 交错字符串 - 力扣(LeetCode)‘解析:二维dp dp[i][j]代表s1前i个和s2前j个是否能组成s3的i+j个 状态转移方程就很简单了, 但这一题要求空间限制,可以观察到dp其实只记录一维就可以,因为用到了i-1或者j-1class Solution { public:bool isInterleave(string …...

MODint(自动取模)

主要来自here,我就只是补充了点东西,修改了一点东西,改了点 re 判断。 建议和我的快读一同使用,兼容的。 in,out兼容,不过建议in(a.val),快一些。同理,建议out(a.val) 不行的话也有流输入输出的兼容。 除法是 \(O(\log mod)\) 的,嫌慢可以自行修改 inv() 函数内容。 t…...

BFD实验

动态bfd+OSPF: bfd q ospf 1 bfd all-interfaces enable net .... net .......

2025.9.16——卷1阅读程序1、2

阅读程序2 vector容量与大小 容量表示在不申请内存的情况下vector还可以添加多少元素,通常超过限制之后容量会增加>=1,具体看算法实现 大小表示vector中有多少元素 .assign(n,val) 将vector的内容替换为n个val值的元素...

25/9/15(补)

来的比较晚,把ABC题改了,随机跳了一道贪心+数学题,学习了一下题解思路。然后做了下2020csps单选,错了2道。不知道今年没有小学生s分数线会不会巨高,后面几天就练练第一轮。...

[Paper Reading] DINOv3

目录DINOv3TL;DRMethodDataArchitectureLearning ObjectiveGram Anchoring ObjectiveLeveraging Higher-Resolution Featurespost-hoc strategiesExperiment相关链接 DINOv3 link 时间:25.08 单位:Meta 相关领域:Self Supervised Learning 作者相关工作: 被引次数:7 项目主…...

25/9/16

作业比较多,来的时候就剩25分钟了,于是补了一下博客,复习了一下之前写的题。然后又研究了一下昨天的P11205(贪心+数学),稍微参悟到了一些。...

JavaDay5

增强for循环 Java增强for循环语法格式如下: for(声明语句:表达式) {//代码句子 }声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在环语句块,其值与此时数组元素的值相等。 表达式:表达式是要访问的数组名,或者是返回值为数组的方法 packag…...

揭秘Mobile Me数据挖掘:从WebDAV探测到隐藏文件发现

本文详细分析了Mobile Me服务的公开文件访问机制,通过WebDAV协议和XML解析技术实现目录遍历,发现用户代理字符串影响隐藏文件显示,并开发了自动化探测工具Me Finder进行数据收集。我最近发布了Bucket Finder脚本,Darren在Hak5节目中进行了专题报道。有反馈指出Mobile Me采用…...

25/9/14(补)

下午: 随机跳题做了p2926 就是一个每个数字为a[i]的环,对于每个a[i]统计a[i]是aj的因数的a[j]个数。 做法:首先是否是环对答案无影响,因为每个数都要走一遍,所以开一个桶b,记录每个数字的出现次数,外层1-1000000枚举i,判断b[i]是否有值,如果有内层1-1000000/i枚举判断b…...

【IEEE出版、往届会后4个月EI检索】第二届计算机视觉、图像处理与计算摄影国际学术会议(CVIP 2025)

第二届计算机视觉、图像处理与计算摄影国际学术会议(CVIP 2025) 2025 2nd International Conference on Computer Vision, Image Processing and Computational Photography *IEEE出版 | 往届会后4个月EI检索,非常稳定!收录范围广 重要信息 在这里看会议官网详情 时间地点:…...

VSCode + Python 开发踩坑:虚拟环境不在项目根目录导致包无法识别该怎么办

最近在学习Dify ,尝试自己使用源码启动项目并进行二次开发。 我按照Dify的官方文档说明使用uv在项目的api目录下安装了Python虚拟环境,但是在VSCode右下角的Python解释器选择中却无法像conda管理的虚拟环境一样直接找到并选中,需要手动选择解释器存在,而且我在手动设置之后…...

洛谷 P10936 导弹防御塔 题解

题目描述请移步 https://www.luogu.com.cn/problem/P10936题目简述有n个防御塔,每个防御塔都有充足的导弹 导弹需要一定时间发出,又需要一定时间冷却 导弹有确定的速度,发出后会沿最短路径攻击任意一个入侵者 有m个入侵者,给定防御塔和入侵者的坐标,求至少多久才能击退所有…...

Python爬虫实战:研究Pandas,构建地理信息资料采集和分析便捷的系统

Python爬虫实战:研究Pandas,构建地理信息资料采集和分析便捷的系统pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier Ne…...

初赛复习

重要知识点 存储单位卡特兰数 以下是一些卡特兰数 \(C_n\) 的应用:二叉树计数\(n\) 个结点的不同形态的二叉树的数量是卡特兰数 \(C_n\)。括号匹配\(n\) 对括号的有效组合数。栈操作序列(出栈顺序)\(n\) 个元素的出栈顺序数。凸多边形的三角划分\(n + 2\) 条边的凸多边形划分…...

用户帐户控制(UAC)

您拥有标准用户的用户名和密码。可在 中查看lusrmgr.msc 。...

fg/bg/jobs/kill命令--linux

[转载](https://www.cnblogs.com/machangwei-8/p/10391440.html) 目录一、命令详解二、进程的终止三、进程的挂起(暂停) 基础命令学习目录首页原文链接:http://www.cnblogs.com/chjbbs/p/6307333.html linux提供的fg和bg命令,可以让我们轻松调度正在运行的任务假如你发现…...

【OC】单例模式 - 教程

【OC】单例模式 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size: 1…...

ios电脑系统和windows系统

iOS电脑系统与Windows系统的对比与选择指南 一、引言 随着科技的快速发展,个人计算机已经成为了我们日常生活中不可或缺的一部分。操作系统作为连接硬件与应用程序之间的桥梁,其重要性不言而喻。在众多操作系统中,iOS(实际上,这里应当指的是macOS,因为iOS是苹果公司为移动…...

HCIP-VRRP

...

JSON Schema 校验是什么?面试时怎么说?

JSON Schema 校验,其实就是 对接口返回的数据结构做自动化校验,确保它符合预期格式。 比如下单接口返回的数据是这样的: { "orderId": 12345, "status": "paid", "amount": 58.5, "items": [ { "productId": 1…...

【征文启动】IvorySQL PostgreSQL 迁移实战经验征集:分享你的技术沉淀,赢取专属好礼!

在数据库技术选型与迭代的浪潮中,迁移始终是企业与开发者绕不开的核心课题——从旧数据库升级到 PostgreSQL 社区版,从其他数据库(Oracle)迁移至 IvorySQL/PostgreSQL,每一步都藏着技术决策的智慧与实战踩坑的经验。 为汇聚更多迁移场景下的实战方案,助力开发者少走弯路,…...