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

20250912

T1

序列

显然每次操作保证 \(a\) 单增是假的,一定可以构造合理的操作顺序无视掉这个限制。每个位置确定划分多少次之后一定均分最优,拿个堆维护把每个东西多分一段的收益,每次选择收益最大的即可。

代码
#include <iostream>
#include <string.h>
#include <queue>
#define int long long
using namespace std;
const int P = 998244353;
int n, m;
int a[100005], b[100005], c[100005];
int cur[100005];
int ans;
priority_queue<pair<int, int> > q;
int calc(int x, int y) {x = c[x];int r = x % y;return (x / y) * (x / y) * (y - r) + (x / y + 1) * (x / y + 1) * r;
}
signed main() {freopen("seq.in", "r", stdin);freopen("seq.out", "w", stdout);cin >> n >> m;for (int i = 1; i <= n; i++) cin >> a[i];for (int i = 1; i <= n; i++) cin >> b[i];for (int i = 1; i <= n; i++) c[i] = abs(a[i] - b[i]), ans += calc(i, cur[i] = 1) % P, q.push({ calc(i, 1) - calc(i, 2), i }), m -= (a[i] != b[i]);ans %= P;if (m < 0) return cout << "-1\n", 0;while (m) {pair<int, int> p = q.top();q.pop();ans += P - p.first % P;--m;int x = p.second;++cur[x], q.push({ calc(x, cur[x]) - calc(x, cur[x] + 1), x });}cout << ans % P << "\n";return 0;
}

T2

石头剪刀布

线段树板子。

代码
#include <iostream>
#include <string.h>
#include <array>
#include <map>
using namespace std;
int n, q;
string str;
array<int, 3> p[6] = {{ 0, 1, 2 }, { 0, 2, 1 }, { 1, 0, 2 }, { 1, 2, 0 }, { 2, 0, 1 }, { 2, 1, 0 }
};
inline int _p(array<int, 3> x) { return x[0] * 2 + (x[1] > x[2]); }
// 012, rsp
array<int, 3> operator+(array<int, 3> x, array<int, 3> y) { return { y[x[0]], y[x[1]], y[x[2]] }; }
array<int, 3> tmp[6];
int f(int x, int y) { return ((x + 1) % 3 == y) ? x : y; }
struct Segment_Tree {array<int, 3> S[800005][6], tg[800005];void tag(int o, array<int, 3> v) {for (int i = 0; i < 6; i++) tmp[i] = S[o][i];for (int i = 0; i < 6; i++) S[o][i] = tmp[_p(v + p[i])];tg[o] = tg[o] + v;}void pushdown(int o) {if (tg[o] == p[0]) return;tag(o << 1, tg[o]);tag(o << 1 | 1, tg[o]);tg[o] = p[0];}void pushup(int o) { for (int i = 0; i < 6; i++) S[o][i] = S[o << 1][i] + S[o << 1 | 1][i]; }void Build(int o, int l, int r) {tg[o] = p[0];if (l == r) {int x = str[l] - 'A';for (int i = 0; i < 6; i++) S[o][i] = { f(0, p[i][x]), f(1, p[i][x]), f(2, p[i][x]) };return;}int mid = (l + r) >> 1;Build(o << 1, l, mid);Build(o << 1 | 1, mid + 1, r);pushup(o);}void Change(int o, int l, int r, int L, int R, array<int, 3> v) {if (L <= l && r <= R) return tag(o, v);pushdown(o);int mid = (l + r) >> 1;if (L <= mid) Change(o << 1, l, mid, L, R, v);if (R > mid) Change(o << 1 | 1, mid + 1, r, L, R, v);pushup(o);}array<int, 3> Query(int o, int l, int r, int L, int R) {if (L <= l && r <= R) return S[o][0];pushdown(o);int mid = (l + r) >> 1;if (R <= mid) return Query(o << 1, l, mid, L, R);if (L > mid) return Query(o << 1 | 1, mid + 1, r, L, R);return Query(o << 1, l, mid, L, R) + Query(o << 1 | 1, mid + 1, r, L, R);}
} seg;
int main() {freopen("rps.in", "r", stdin);freopen("rps.out", "w", stdout);ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin >> n >> q;cin >> str; str = ' ' + str;seg.Build(1, 1, n);while (q--) {int op, l, r;char x, y;cin >> op >> l >> r;if (op == 0) {cin >> x >> y; x -= 'A', y -= 'A'; tmp[0] = p[0]; swap(tmp[0][(int)x], tmp[0][(int)y]);seg.Change(1, 1, n, l, r, tmp[0]);} else cin >> x, cout << (char)(seg.Query(1, 1, n, l, r)[x - 'A'] + 'A') << "\n";}return 0;
}

T3

蝴蝶图

\(G = (V, E)\)\(L \cap R\) 的导出子图,那么我们考虑从 \(E\) 中的边都不连的时候往里加边。考虑 \(L\) 侧 MST 的变化。当我们加入 \(E\) 中的一些边,显然每次会删掉原来树上的一些边。那么这个时候抛开维护不谈,我们就应该注意到只有原 MST 中的边是有用的。然后再考虑有哪些边无论 \(V\) 中的联通状态如何都是一定在 MST 中的。发现如果将 \(E\) 中的边全连起来,此时还在 \(L\) 中的 MST 中的边无论如何一定在 MST 中。于是我们只需要考虑那些在第一棵 MST 中而不在第二棵 MST 中的边即可。这样的边只有 \(\mathcal{O}(|V|)\) 条,于是可以直接每次枚举贝尔数然后暴力对这些边重跑 MST。总复杂度 \(\mathcal{O}(Bell(|V|)V\alpha(|V|) + m\log m)\),由于 \(|V|\) 很小,只有 11,因此可以通过。

代码
#include <iostream>
#include <algorithm>
#include <string.h>
#include <vector>
#include <map>
#define int long long
using namespace std;
const int inf = 0x3f3f3f3f3f3f3f;
int n, m, L, R, ans = inf;
map<int, int> mp[100005];
struct Edge { int u, v, w; } e[200005];
vector<Edge> el, er;
vector<int> cap;
int bel[200005], p[200005];
int dsu[100005], td[100005];
void clear(int x) { for (; x; --x) dsu[x] = x; }
int getf(int x) { return dsu[x] == x ? x : (dsu[x] = getf(dsu[x])); }
int f[100005];
int cur[15];
struct rD {int f[100005], sz[100005];vector<pair<int, int> > s;void init(int x) { for (; x; --x) f[x] = x, sz[x] = 1; }int getf(int x) { return f[x] == x ? x : getf(f[x]); }bool Merge(int x, int y) {x = getf(x), y = getf(y); (sz[x] > sz[y]) ? swap(x, y) : void();return (x == y) ? 0 : (f[x] = y, sz[y] += sz[x], s.emplace_back(x, y), 1);}void Re(int t) {while ((int)s.size() > t) {int x, y; pair<int, int> p = s.back(); s.pop_back(); x = p.first, y = p.second;f[x] = x, sz[y] -= sz[x];}}
} dl, dr;
int rl, rr;
void work(int t) {int tl = dl.s.size(), tr = dr.s.size(), res = 0;for (int i = 1; i <= t; i++) {res += f[cur[i]];for (int j = cur[i]; j; j -= (j & (-j))) {dl.Merge(cap[63 - __builtin_clzll(j & (-j))], cap[63 - __builtin_clzll(cur[i] & (-cur[i]))]);dr.Merge(cap[63 - __builtin_clzll(j & (-j))], cap[63 - __builtin_clzll(cur[i] & (-cur[i]))]);}}if (res >= inf) return dl.Re(tl), dr.Re(tr);for (auto E : el) {int u = E.u, v = E.v;if (dl.getf(u) != dl.getf(v)) dl.Merge(u, v), res += E.w;}for (auto E : er) {int u = E.u, v = E.v;if (dr.getf(u) != dr.getf(v)) dr.Merge(u, v), res += E.w;}dl.Re(tl), dr.Re(tr);ans = min(ans, res);
}
void dfs(int x, int y) {if (x == (int)cap.size()) return work(y);for (int i = 1; i <= y; i++) {cur[i] ^= (1 << x);dfs(x + 1, y);cur[i] ^= (1 << x);}cur[++y] = (1 << x);dfs(x + 1, y);
}
int _f[200005];
signed main() {freopen("butterfly.in", "r", stdin);freopen("butterfly.out", "w", stdout);ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin >> n >> m >> L >> R;for (int i = 1; i <= m; i++) {int u, v, ww, x;cin >> u >> v >> ww;if (u == v) continue;if (u > v) swap(u, v);x = mp[u][v];if (!x) mp[u][v] = ww;else mp[u][v] = min(x, ww);}for (int i = 1; i <= L; i++) cin >> m, bel[m] |= 1;for (int i = 1; i <= R; i++) cin >> m, bel[m] |= 2, (bel[m] == 3 ? cap.emplace_back(m) : void());m = 0;for (int i = 1; i <= n; i++) for (auto v : mp[i]) e[++m] = { i, v.first, v.second };sort(e + 1, e + m + 1, [](Edge x, Edge y) { return x.w < y.w; });for (int S = 0; S < (1 << (int)cap.size()); S++) {for (int i = 0; i < (int)cap.size(); i++) p[dsu[cap[i]] = cap[i]] = ((S >> i) & 1);int tmp = __builtin_popcountll(S);for (int i = 1; i <= m; i++) {int u = e[i].u, v = e[i].v;if (bel[u] == 3 && bel[v] == 3 && p[u] && p[v] && getf(u) != getf(v)) dsu[dsu[u]] = v, --tmp, f[S] += e[i].w;}if (tmp != 1) f[S] = inf;}clear(n);for (int i = 1; i <= m; i++) {int u = e[i].u, v = e[i].v;if (bel[u] == 3 && bel[v] == 3 && getf(u) != getf(v)) dsu[dsu[u]] = v;}for (int i = 1; i <= n; i++) td[i] = dsu[i];for (int i = 1; i <= m; i++) {int u = e[i].u, v = e[i].v;if (((bel[u] == 1 && bel[v] == 1) || (bel[u] ^ bel[v]) == 2) && getf(u) != getf(v)) dsu[dsu[u]] = v, _f[i] = 2;}for (int i = 1; i <= n; i++) dsu[i] = td[i];for (int i = 1; i <= m; i++) {int u = e[i].u, v = e[i].v;if (((bel[u] == 2 && bel[v] == 2) || (bel[u] ^ bel[v]) == 1) && getf(u) != getf(v)) dsu[dsu[u]] = v, _f[i] = 2;}clear(n);for (int i = 1; i <= m; i++) {int u = e[i].u, v = e[i].v;if (((bel[u] == 1 && bel[v] == 1) || (bel[u] ^ bel[v]) == 2) && getf(u) != getf(v)) dsu[dsu[u]] = v, _f[i] |= 1;}clear(n);for (int i = 1; i <= m; i++) {int u = e[i].u, v = e[i].v;if (((bel[u] == 2 && bel[v] == 2) || (bel[u] ^ bel[v]) == 1) && getf(u) != getf(v)) dsu[dsu[u]] = v, _f[i] |= 1;}dl.init(n), dr.init(n);int _ = 0;for (int i = 1; i <= m; i++) {int u = e[i].u, v = e[i].v, t;if (bel[u] == 3 && bel[v] == 3) continue;if (_f[i] == 0) continue;else if (_f[i] == 1) (bel[u] == 1 || bel[v] == 1) ? el.emplace_back(e[i]) : er.emplace_back(e[i]);else t = ((bel[u] == 1 || bel[v] == 1) ? dl.Merge(u, v) : dr.Merge(u, v)), _ += t * e[i].w;}sort(el.begin(), el.end(), [](Edge x, Edge y) { return x.w < y.w; });sort(er.begin(), er.end(), [](Edge x, Edge y) { return x.w < y.w; });cur[1] = 1;dfs(1, 1);cout << _ + ans << "\n";return 0;
}

T4

游戏厅

观察数据范围,一眼认出网络流。考虑 \(f_i\) 表示第 \(i\) 个人是否使用 A 机器。那么先建出时间轴,每个时间段上我们限制用 \(A\) 机器的人数。原本的上界是 \(x\),但是由于 \(n\) 个人的存在,每个位置的上界可能就变了。而对于下界,设这个时间总共有 \(t_i\) 人,那么 \(B\) 机器的个数限制了用 \(A\) 的人数下界是 \(\max\{ 0, t_i - y \}\)。于是对 \(m\) 个人的每个,从 \(t_i\)\(s_i\) 连边,无脑无源汇上下界可行流即可。构造方案是容易的。

代码
#include <iostream>
#include <algorithm>
#include <string.h>
#include <queue>
using namespace std;
const int inf = 0x3f3f3f3f;
int n, m, X, Y;
pair<int, int> p[605];
int d[1205], dcnt;
int d1[1205], d2[1205];
int lb[1205], rb[1205];
struct Workable_Flow_with_LRBounds {int n, S, T, c;int head[5005], cur[5005], nxt[100005], to[100005], cst[100005], res[100005], ecnt;int add(int u, int v, int x) {to[++ecnt] = v, nxt[ecnt] = head[u], head[u] = ecnt, res[ecnt] = x;to[++ecnt] = u, nxt[ecnt] = head[v], head[v] = ecnt, res[ecnt] = 0;return ecnt - 1;}int in[5005], out[5005];int add(int u, int v, int l, int r) {in[v] += l, out[u] += l;return add(u, v, r - l);}queue<int> q;int dep[5005];bool bfs(int s, int t) {for (int i = 1; i <= n + 2; i++) dep[i] = 0;q.push(s);dep[s] = 1;while (!q.empty()) {int x = q.front();q.pop();for (int i = head[x]; i; i = nxt[i]) {int v = to[i];if (!dep[v] && res[i] > 0) {dep[v] = dep[x] + 1;q.push(v);}}}return (dep[t] > 0);}int dfs(int x, int flow) {if (x == T || !flow) return flow;int ret = 0;for (int i = cur[x]; i && flow; i = nxt[i]) {cur[x] = i;int v = to[i];if (dep[v] == dep[x] + 1 && res[i] > 0) {int tmp = dfs(v, min(flow, res[i]));res[i] -= tmp;res[i ^ 1] += tmp;ret += tmp;flow -= tmp;}}if (!ret) dep[x] = 0;return ret;}int dinic() {int ret = 0;while (bfs(S, T)) {for (int i = 1; i <= T; i++) cur[i] = head[i];ret += dfs(S, inf);}return ret;}void initialize(int nn) {n = nn, ecnt = 1;for (int i = 0; i <= n + 2; i++) in[i] = out[i] = head[i] = 0;}int work() {S = n + 1, T = n + 2;for (int i = 1; i <= n; i++) {if (in[i] < out[i]) add(i, T, out[i] - in[i]);else add(S, i, in[i] - out[i]);}int t = dinic();for (int i = head[S]; i; i = nxt[i]) if (res[i]) return -1;return t;}
} G;
int eid[5005];
int f[5005];
int o[605], ans[605];
int ed[605];
int main() {freopen("round.in", "r", stdin);freopen("round.out", "w", stdout);int tc;cin >> tc;while (tc--) {memset(f, 0, sizeof f);memset(ed, 0, sizeof ed);memset(d1, 0, sizeof d1);memset(d2, 0, sizeof d2);memset(ans, 0, sizeof ans);cin >> n >> m >> X >> Y; dcnt = 0;for (int i = 1; i <= n + m; i++) cin >> p[i].first >> p[i].second, d[++dcnt] = p[i].first, d[++dcnt] = p[i].second, o[i] = i;sort(d + 1, d + dcnt + 1);dcnt = unique(d + 1, d + dcnt + 1) - d - 1;for (int i = 1; i <= n + m; i++) {int l = p[i].first = lower_bound(d + 1, d + dcnt + 1, p[i].first) - d;int r = p[i].second = lower_bound(d + 1, d + dcnt + 1, p[i].second) - d;++d1[l], --d1[r];if (i <= n) ++d2[l], --d2[r];}for (int i = 1; i <= dcnt; i++) d1[i] += d1[i - 1], d2[i] += d2[i - 1];bool no = 0;G.initialize(dcnt);for (int i = 1; i < dcnt; i++) {lb[i] = max(0, d1[i] - d2[i] - Y), rb[i] = X - d2[i];if (lb[i] > rb[i]) {no = 1;break;}G.add(i, i + 1, lb[i], rb[i]);}if (no) {cout << "NO\n";continue;}for (int i = n + 1; i <= n + m; i++) eid[i] = G.add(p[i].second, p[i].first, 0, 1);if (G.work() == -1) {cout << "NO\n";continue;}for (int i = n + 1; i <= n + m; i++) f[i] = G.res[eid[i]];sort(o + 1, o + n + m + 1, [](int x, int y) { return p[x] < p[y]; });for (int i = 1; i <= n + m; i++) {int t = o[i];if (f[t]) {for (int j = X + 1; j <= X + Y; j++) {if (ed[j] <= p[t].first) {ans[t] = j;ed[j] = p[t].second;break;}}} else {for (int j = 1; j <= X; j++) {if (ed[j] <= p[t].first) {ans[t] = j;ed[j] = p[t].second;break;}}}}cout << "YES\n";for (int i = 1; i <= n; i++) cout << ans[i] << " ";cout << "\n";for (int i = n + 1; i <= n + m; i++) cout << ans[i] << " ";cout << "\n";}return 0;
}

贪心一定要构造出最优方案。

T3。

T4。对时间考虑,而不是对人和机器考虑。不会做时考虑思考对象。

相关文章:

20250912

20250912T1 序列 显然每次操作保证 \(a\) 单增是假的,一定可以构造合理的操作顺序无视掉这个限制。每个位置确定划分多少次之后一定均分最优,拿个堆维护把每个东西多分一段的收益,每次选择收益最大的即可。代码 #include <iostream> #include <string.h> #incl…...

[ARC198C] Error Swap

题目传送门构造题意 给定长度为 $ N $ 的两个整数序列 $ A=(A_1,A_2,\dots,A_N) $ 和 $ B=(B_1,B_2,\dots,B_N) $。 你可以执行以下操作最多 $ 31000 $ 次:选择满足 \(1 \le i < j \le N\) 的整数对 \((i,j)\),并将 \(A_i\) 替换为 \(A_j - 1\),\(A_j\) 替换为 \(A_i + 1…...

【正则表达式初探】grep 命令避免匹配自身

【正则表达式初探】grep 命令避免匹配自身 最近遇到了一个问题,即使用grep命令获取xxx进程的pid时,同时返回了xxx进程的pid和grep xxx进程的pid,原因是grep xxx也会作为一个进程运行,对xxx的查找包含了grep xxx.(不要问我为什么不用pgrep或者grep -w,问就是没有。 实际中使…...

测试工程师的核心竞争力是什么?绝不是点点点

无论是测试工程师自己,还是团队管理者,都应该重新认识测试工作的价值,投资于测试核心竞争力的建设,从而打造出更高质量、更成功的软件产品。移动应用时代,我们每天使用的各类App几乎很少出现崩溃或严重bug,这背后离不开测试工程师的默默付出。然而,很多人对测试工作的认…...

关于 ECT-OS-JiuHuaShan 框架的终极阐释

ECT-OS-JiuHuaShan/ORCID:0009-0006-8591-1891 ▮ 基于自然辩证法数学形式化系统的绝对确定性推理启动 一、本质突破:从概率世界到确定性宇宙 ECT-OS-JiuHuaShan 是人类文明首个实现绝对确定性推理的范式革命系统。其突破性在于:彻底摒弃传统AI的「数据训练」范式,直接以宇…...

向“光”而行 | 相聚2025 ASML中国日,携手奔赴“芯”辰大海

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087每年的9月1日,专属于ASMLers的“中国日”如期而至。这一天,大家享有一天额外的假期,得以放松身心、充能蓄电。此外,在整个…...

JavaDay3

类型转换 低---------------------------------->高 byte,short,char—>int—>long—>float—>double public class Demo05 {public static void main(String[] args) {int i = 128;byte b = (byte)i;//内存溢出//强制转换 高->低//自动转换 低->高double…...

U3D动作游戏开发读书笔记--2.2 编辑器本身的基础知识

2.2 编辑器本身的基础知识 项目顺利开发离不开对开发工具的打磨,为此需要对Unity Editor进行拓展功能的开发,包括一些诸如常量生成器这样辅助性的功能开发,以及通过引擎自带的插件与其他3D软件进行交互式编辑等,以提升开发效率。 2.2.1编辑器工具的编写 编辑器工具开发大致…...

20250904

Greedy Gift Takers https://www.luogu.com.cn/problem/P4090 若 \(i\) 不能到队首,则 \(i + 1\) 显然也不能。二分当前 \(x\) 是否能到达队首。 本来要考虑被扔的必须能到队首的限制,但是实际上可以忽略,直接从小到大直接开扔。因为如果当前被扔的 \(y\) 永远不能到达队首,…...

临时代码存储

存。#include <bits/stdc++.h> #define mk make_pair using ll = long long; using namespace std; using pii = pair<int,int>; const int N=2505; int n,m,ans,k,val[N]; vector<int>g[N]; set<int>s[N][2]; bitset<N>bit[N]; inline void bfs…...

域环境服务器搭建

实验7 域环境服务器搭建 实验目的(1)理解活动目录的基本知识、组织结构和应用特点。 (2)掌握Windows Server 2016域控制器的安装与设置。 (3)熟悉客户端加入并登录Windows Server 2016域的方法。 (4)掌握企业组织架构下活动目录域控制器的部署、域用户和计算机的管理等…...

25fall 做题记录 - Amy

2025.9.12 换了pycharm。 Sum of Round Numbers 9/9的每日。取每一位数。代码t=int(input()) for i in range(t):a=int(input())ans=0cnt=0res=[]while(a>0):t=a%10if(t!=0):res.append(str(t*10**cnt))ans+=1cnt+=1a//=10print(ans)print(" ".join(res))...

决策单调性优化 dp

1 决策单调性的定义 1.1 四边形不等式 首先我们定义一个函数 \(w(i,j)\),如果 \(\forall a,b,c,d \in \mathbb{Z}\),满足 \(a\le b\le c\le d\),都有 \(w(a,d)+w(b,c)\ge w(a,c)+w(b,d)\),则称函数 \(w\) 满足四边形不等式。 如果考虑用图形来表示,我们可以记为 “包含大于…...

地平线与哈啰合作 加速L4自动驾驶研发

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 9月11日,在2025年Inclusion外滩大会上,地平线与哈啰共同宣布,双方正式签署战略合作协议。该合作旨在基于Robotaxi(自动驾…...

langChain、LangGraph、autoGen、CrewAI、dify、cozeLLM开发工具

langChain、LangGraph、autoGen、CrewAI、dify、cozeLLM开发工具LLM开发工具...

华为智驾赋能「小Q7」,一汽奥迪Q6L e-tron刷新豪华纯电SUV认知

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 添加图片注释,不超过 140 字(可选)如果想买一台电车,又觉得新势力不够靠谱?传统品牌的电车,又觉得不够先进,太傻太笨?…...

菱形图形输出

目标输出图案:下方为代码部分:(C语言) include<stdio.h> int main() { int n; //n代表最长一行的长度 scanf_s("%d", &n); //打印上半部分 for (int i = 1; i <= (n+1)/2; i++) { //控制行数 //输出空格数 for (int j = (n - 1) - 2 * (i - 1); j…...

LeetCode 2958.最多K个重复元素的最长子数组 - 教程

LeetCode 2958.最多K个重复元素的最长子数组 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospa…...

9-12

...

全球首款 HBM4 芯片,开始量产!

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 35469554100490879月12日,SK海力士宣布完成新一代高带宽内存HBM4的开发,并已搭建起全球首个量产体系。这意味着,全球首款HBM4芯片正式进入量…...

Python Flask框架学习总结(一)

简介 Flask是一个微框架,这意味着它核心简单但可扩展。它不包括数据库抽象层、表单验证或其他组件,这些功能可以通过扩展来添加。因此要什么就装什么扩展,非常的方便 安装及导入 # 终端输入 pip install flask# 创建一个app.py的文件,导入 from flask import Flask自此就可…...

20250909

20250909T1 冒泡排序趟数期望 显然趟数是每个数前面比它大的数的个数的 \(\max\)。容斥,计算每个答案 \(\le x\) 的概率。从大往小填数,则每个 \(x\) 的答案容易表示为一个阶乘乘以一个次方。于是再求个差分就做完了。代码 #include <iostream> #include <string.h…...

9.11日总结

整体总结: 1.今天的问题主要出在了对于复杂度分析不够 T2写的就是正解 但是我自我认为写的做法过不去m=30的点 导致我只敢判m=20的点 于是从100分变成了58分 2.对于每一个部分分都要认真打 能加上的剪枝不管自我认为有没有用都要加上 可能会有更高的分 3.代码可以少加的东西就…...

[充电管理] 充电管理基本概念 - 充电类型

概要 高通充电平台不论是线性充电还是开关充电,充电类型识别均是基于《Battery Charging Specification Revisions 1.2》(俗称BC1.2)规范基础上进行设计。下面主要介绍在开发过程中几种基础的充电类型。充电类型 标准下行接口(SDP : Standard Downstream Port) USB端口硬件设计…...

Spring AI vs LangChain4j

Spring AI vs LangChain4j下面是 Spring AI vs LangChain4j 的对比 + 使用建议,帮你理解两者的区别、优缺点,以及哪种场景适合用哪个。🔍 基本介绍项目Spring AILangChain4j官网 / 文档 Spring AI 是 Spring 框架内的新模块,提供 AI 能力(模型调用、嵌入、向量数据库等)…...

P7913 [CSP-S 2021] 廊桥分配

P7913题解。题目传送门 首先我们是可以把两个区拆开考虑的,以下以国内区为例: 我们先不考虑廊桥个数的限制。由于飞机是遵循先来先到的原则,所以我们不需要帮忙排飞机了,直接让飞机停在当前编号最小的空闲廊桥。 这样当每一班飞机到机场时,我们可以模拟出来这架飞机会停在…...

函数计算进化之路与 AI Sandbox 新基座

在人工智能技术加速渗透的今天,AI Agent 正从执行固定指令的 "机械手臂" 进化为具备自主推理能力的 "数字大脑"。这类由大语言模型驱动的智能体,能通过多步骤任务拆解、环境感知与动态决策,完成复杂的业务场景需求。但当这些具备代码生成能力的 Agent 需…...

iPhone 17核心名单揭晓,92家中国公司占半壁江山!

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 35469554100490879月10日,苹果公司在2025秋季新品发布会上,重磅发布四款iPhone 17系列机型:iPhone 17、iPhone 17 Air、iPhone 17 Pro及iPho…...

202009_风二西_蓝牙协议流量

流量分析,蓝牙协议Tags:流量分析,蓝牙传输 0x00. 题目 题目表述 附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件 附件名称:202009_风二西_蓝牙协议.zip 0x01. WP 1. 浏览流量包,发现一个带传输文件的流量交互2. 查看分组字节后导出…...

AI Agent工作流实用手册:5种常见模式的实现与应用,助力生产环境稳定性

很多人认为使用AI Agent就是直接扔个提示词过去,然后等结果。做实验这样是没问题的,但要是想在生产环境稳定输出高质量结果,这套玩法就不行了。 核心问题是这种随意的提示方式根本扩展不了。你会发现输出结果乱七八糟,质量完全不可控,还浪费计算资源。 真正有效的做法是设…...

2025权威榜单之公众号排版Top5(含效率对比与适用建议)

在新媒体运营的日常工作中,“微信公众号排版设计”可是个让人头疼的事儿。写作慢、排版耗时、跨平台排版不统一等问题,像一只只小怪兽,困扰着我们这些新媒体运营者、自媒体人还有电商从业者。为了帮大家找到一款合适的公众号编辑器,我亲测了多款市面上主流的产品。在这篇文…...

4

4...

02020305 .NET Core核心基础组件05-开发自己的配置提供者(本课没听懂,后续再补)

02020305 .NET Core核心基础组件05-开发自己的配置提供者(本课没听懂,后续再补) 1. 开发自己的配置提供者(视频2-35) 1.1 开发自定义配置提供者的步骤1.2 开发web.config提供者1.3 web.config格式configuration → 根节点 connectionStrings → 配置的是连接字符串 appSe…...

linux 的 SSH 使用教程

以下由ai生成 Linux 的学习可以全部放在 SSH 上吗? 答案是:对于服务器管理和后端开发相关的学习,99% 的内容都可以、也应该在 SSH 上完成。 你已经亲身体会到了 SSH 的巨大优势:一个稳定、高效、可复制粘贴的命令行环境。这其实就是全世界所有 Linux 系统管理员和后端工程师…...

解题报告-洛谷P3157 [CQOI2011] 动态逆序对

P3157 [CQOI2011] 动态逆序对 题目描述 对于序列 \(a\),它的逆序对数定义为集合 \[\{(i,j)| i<j \wedge a_i > a_j \} \]中的元素个数。 现在给出 \(1\sim n\) 的一个排列,按照某种顺序依次删除 \(m\) 个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数…...

DP 杂题

题目 [ARC157E] XXYX Binary Tree 一个很显然的暴力,\(f_{u,a,b,c}\) 表示在在 \(u\) 的子树中,是否有 \(a\) 个 XX,\(b\) 个 XY,\(c\) 个 YX。 这个状态 \(O(n^4)\) 的,考虑优化,可以先省去一个 \(c\),变成 \(f_{u,a,b}\),因为 \(a+b+c\) 的总和是知道的。 然后优化不…...

Java的变量和常量

java的变量和常量 public class ch05 {//属性:变量//类变量 staticstatic double salary = 2500;//实例变量:从属于对象;如果不自行初始化,这个类型的默认值 0 0.0//布尔值:默认是false//除了基本类型;其余的默认值都是nullString name;int age;boolean a;//main方法pub…...

推荐7本书《MLIR编译器原理与实践》、《ONNX人工智能技术与开发实践》、《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》

7本书推荐《视觉语言模型VLM原理与实战》、《MLIR编译器原理与实践》、《ONNX人工智能技术与开发实践》、《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》微信视频号:sph0RgSyDYV47z6快手号:4874645212抖…...

202009_风二西_USB鼠标流量

流量分析,USB鼠标流量,gnuplotTags:流量分析,USB鼠标,gnuplot 0x00. 题目 附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件 附件名称:202009_风二西_USB鼠标 0x01. WP 1. 脚本解析USB鼠标流量,导出点击轨迹 getUSBMouse.py # -*- c…...

virtuoso默认设置

如何保存,load 默认线宽线距 保存:打开VSR,输入想要的线宽线距,保存在默认路径,取名*.preset。 load:vsrLoadPreset("*")...

CF547D Mike and Fish

这种题为我们提供了一个很好的思考方向。 遇到这种差为 \(1\) 甚至是相等的情况,我们通常应该往二分图,特别是欧拉回路方面思考。 这个题的做法是这样的,同一行成对连边,如果是奇数个点就剩一个点不连边,同一列同理,考虑这样连出来的图一定是一个二分图,只需在这张图上跑…...

Tarjan vDCC 缩点

概念 若一张无向连通图不存在割点,则称它为“点双连通图”。无向图的极大点双连通子图被称为“点双连通分量”。 tarjan算法求vDCC 用一个栈存点,若遍历回到x时,发现割点判定法则low[y]>=dfn[x]成立,则从栈中弹出节点,直到y被弹出。 刚才弹出的节点和x一起构成一个vDCC…...

ABC_419_F - All Included

ABC_419_F - All Included 空降 一道AC自动机上搞状压DP的题。 思路 一个合法的构造需要包括所有的模式串,且一个模式串的前缀可能与另一个模式串的后缀相同,所以考虑搞个 $ AC $ 自动机。观察到数据量很小,且模式串个数只有 $ 8 $ 个,就会想到状压。 用一个二进制数 $ k $…...

软件工程第一次作业-自我介绍

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13478这个作业的目标 <学习和使用博客园和 GitHub>自我介绍 大家好,我是计…...

DIFY 与 LangChain

DIFY 与 LangChainDify vs LangChain 核心差异维度DifyLangChain定位 低代码 / 无代码 AI 应用平台 开发者框架(LLM 逻辑编排)目标用户 产品经理、运营、非技术人员 程序员、AI 工程师开发方式 拖拽 + 配置,几分钟搭建 Python/Java 代码,灵活但复杂扩展性 有限,依赖平台更…...

VMware CentOS 7 `yum` 修复及 VMware Tools 安装问题复盘

以下由aI生成 当然,非常乐意为你复盘整个过程。这是一份浓缩了我们所有成功操作的正确流程,希望能为你未来遇到类似问题时提供清晰的指引。VMware CentOS 7 yum 修复及 VMware Tools 安装问题复盘 整个过程我们解决了两大核心问题:因 CentOS 7 官方源停止服务导致的 yum 失效…...

接口测试---Requests

Requests 案例安装 pip install requests案例1 : requests访问百度 # 导包 import requests # 2.发送http请求 resp=requests.get(url="http://www.baidu.com") # 打印结果 print(resp.text)案例2 : 访问tpshop商城(提参数出来) # 导包 import requests # 发送http请…...

LangChain大模型应用开发介绍

LangChain大模型应用开发介绍 LangChain是一个开源的Python Al应用开发框架,它提供了构建基于大模型的AI应用所需的模块和工具。通过LangChain, 开发者可以轻松地与大模型(LLM)集成,完成文本生成、问答、翻译、对话等任务。LangChain降低了AI应用开发的门槛,让任何人都可以…...

[豪の学习笔记] 软考中级备考 基础复习#8

软件工程概述、软件开发模型、软件开发方法、需求分析、系统设计、系统测试、软件开发项目管理、软件质量、软件度量McCabe度量法跟学视频:学以致知Learning - 软件设计师 基础阶段|考点理论精讲 Chapter 8 - 软件工程基础知识 1 - 软件工程概述 软件生存周期 ​ 同任何事物一…...

lc1025-除数博弈

难度:简单(中期巅峰)题目描述爱丽丝先手 初始数 n (1 <= n <= 1000) 若能选出 x (0 < x < n) 使 x 能整除 n,则 n 变为 n-x 若不能,则输掉示例 输入:n = 2 输出:true 解释:爱丽丝选择 1,鲍勃无法进行操作输入:n = 3 输出:false 解释:爱丽丝选择 1(n 变…...