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

2025ICPC网络赛第一场(A,B,C,D,G,I,M)

A. Who Can Win

https://qoj.ac/contest/2513/problem/14301

思路

按题意模拟,统计第 \(239min\) 时成绩最好的队伍,记为冠军队伍,从 \(240min\) 开始到比赛结束的所有队伍都假设提交通过,实时计算成绩,一旦超过 \(239min\) 前的成绩最好队伍同样记作冠军。

细节:

1.输出时按照字典序输出。

  1. \(AC\) 过的题目之后的提交要视为无效。

  2. 仅第一次 \(AC\) 前的错误提交要计算罚时。

代码

#include<bits/stdc++.h>
using namespace std;
using ll = long long;struct node1{int team;int id;int time;int res;bool operator<(const node1& b)const{return time < b.time;}
};
struct node2{int solv;int cnt[26];int time;int id;bool operator<(const node2& b)const{if(solv == b.solv){return solv > b.solv;}else return time > b.time;}
};void solve(){int n;cin >> n;vector<node1> e(n + 1);int idx = 0;map<string, int> te;map<int, string> et;for(int i = 1; i <= n; i++){string s;char c;int num;string r;cin >> s >> c >> e[i].time >> r;if(!te[s]){te[s] = ++idx;et[idx] = s;}e[i].team = te[s];e[i].id = c - 'A';if(r == "Accepted"){e[i].res = 1;}else if(r == "Unknown"){e[i].res = 2;}else{e[i].res = 3;}}vector<node2> tte(idx + 1);vector<node2> ed(idx + 1);vector<int> vis(idx + 1);sort(e.begin() + 1, e.end());for(int i = 1; i <= n; i++){if(e[i].time >= 240)break;int j = e[i].team;//j是队伍索引,i是题目索引if(e[i].res == 1){if(tte[j].cnt[e[i].id] < 0)continue;tte[j].solv++;tte[j].time+=e[i].time;tte[j].time+=tte[j].cnt[e[i].id] * 20;tte[j].cnt[e[i].id] = -1e9;//确保AC后的提交无效}else tte[j].cnt[e[i].id]++;}int anscnt = 1; int anstime = 1;for(int i = 1; i <= idx; i++){if(tte[i].solv == tte[anscnt].solv){if(tte[anscnt].time > tte[i].time)anscnt = i;}else if(tte[i].solv > tte[anscnt].solv)anscnt = i;}vis[anscnt] = 1;anstime = tte[anscnt].time;anscnt = tte[anscnt].solv;//上面作为索引,下面作为过题数 for(int i = 1; i <= idx; i++){if(tte[i].solv == anscnt){if(anstime >= tte[i].time)vis[i] = 1;}else if(tte[i].solv > anscnt)vis[i] = 1;}for(int i = 1; i <= n; i++){if(e[i].time < 240)continue;int j = e[i].team;if(tte[j].cnt[e[i].id] < 0)continue;tte[j].solv++;tte[j].time+=e[i].time;tte[j].time+=tte[j].cnt[e[i].id] * 20;tte[j].cnt[e[i].id] = -1e9;//确保AC后的提交无效if(tte[j].solv == anscnt){if(anstime >= tte[j].time)vis[j] = 1;}else if(tte[j].solv > anscnt)vis[j] = 1;}vector<string> res;for(int i = 1; i <= idx; i++){if(vis[i])res.push_back(et[i]);}sort(res.begin(), res.end());for(auto v : res){cout << v << " ";}cout << "\n";}int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;cin >> t;while(t--)solve();return 0;
}

B. Creating Chaos

https://qoj.ac/contest/2513/problem/14302

思路

猜的,发现 \(1, 2, ....., k\) 正确。

代码就不贴了

C. Canvas Painting

https://qoj.ac/contest/2513/problem/14303

思路

每次有效操作会使得颜色总数减少,答案即为 \(n\;-\;cnt\)。想办法求有效操作数。

先排序,排完序后,我们从左到右处理,对于相邻的 \(id\)\(id+1\) 我们将其涂成一种颜色,在区间左端小于 \(id\) 的所有区间中,找到最小的区间右端进行操作,记为一次有效操作。

这显然是 \(O(nlog\;n)\) 的复杂度,可行

代码

#include<bits/stdc++.h>using namespace std;
using ll = long long;struct node{int v;int w;bool operator<(const node& b)const{return w > b.w;}
};void solve() {int m, n;cin >> m >> n;vector<pair<int, int>> a(m + 1);for(int i = 1; i <= m; i++){cin >> a[i].first >> a[i].second;}sort(a.begin() + 1, a.end());int idx = 1;int id = a[1].first;int cnt = 0;priority_queue<node> q;while(id <= n){for(; a[idx].first <= id && idx <= m; idx++){q.push({idx, a[idx].second});}while(q.size()){auto [u, r] = q.top();q.pop();if(id + 1 <= r){cnt++;id++;break;} }if(q.empty()){if(idx == m + 1)break;id = a[idx].first;}}cout << n - cnt << "\n";}int main(){ios::sync_with_stdio(0);cin.tie(0);ll t;cin >> t;while(t--)solve();
}

D. Min-Max Tree

https://qoj.ac/contest/2513/problem/14304

题意

把一棵树拆边后分为若干个连通块,每个连通块的贡献为连通块中最大值减去最小值,拆边使得所有连通块的贡献求和最大,求这个值。

思路

贡献为最大值减最小值,易知,最大值贡献为 \(+\,a_i\), 最小值贡献为 \(-\,a_i\), 其他值贡献为 \(0\).

其次,连通块一定是链的形式,若有树的形式,可证明删除支链后贡献不减。

考虑 \(dp\), 设置状态 \(dp_{i, 0/1/2}\)

其中 \(dp_{i, 0}\) 表示以 \(i\) 为根的子树中所有连通块的贡献和,并且所有连通块已完结。

\(dp_{i, 1}\)表示以 \(i\) 为链端的的连通块中已经找到了最大值,没有最小值。

\(dp_{i, 2}\)表示以 \(i\) 为链端的连通块找到了最小值,没有最大值。

考虑 \(dp\) 转移

dp[u][0] = max(dp[u][0], sum);//所有儿子都完结的情况
\\u为当前子树的根,sum为儿子子树所有完结的和
/*sum += dp[v][0]*/
int mx1 = -1e9;//记录找到最大值的所有子树中贡献最大的
int mx2 = -1e9;//记录找到最小值的所有子树中贡献最大的
for(auto v : e[u]){dp[u][0] = max(dp[u][0], sum - dp[v][0] + dp[v][1] - a[u]);//v儿子已经找到了最大值,现在认为在u处找到了最小值dp[u][0] = max(dp[u][0], sum - dp[v][0] + dp[v][2] + a[u]);//v儿子已经找到了最小值,现在认为在u处找到了最大值mx1 = max(mx1, dp[v][1] - dp[v][0]);//减去dp[v][0]在下面有体现mx2 = max(mx2, dp[v][2] - dp[v][0]); 
}
dp[u][0] = max(dp[u][0], sum + mx1 + mx2)//一个找到最大值的儿子和一个找到最小值的儿子结合起来形成完整的连通块,a[u]此时贡献为0
//上面这里要减去1和2的dp[v][0]值,在之前已经减过了dp[u][1] = max(dp[u][1], sum + a[u]);//儿子完结,a[u]单独做有最大值的链头
dp[u][2] = max(dp[u][2], sum + a[u]);//儿子完结,a[u]单独做有最小值的链头
for(auto v : e[u]){dp[u][1] = max(dp[u][1], sum - dp[v][0] + dp[v][1]);//v儿子已经找到了最大值,现在不认为在u处找到了最小值,所以a[u]贡献为0dp[u][2] = max(dp[u][2], sum - dp[v][0] + dp[v][2]);//v儿子已经找到了最小值,现在不认为在u处找到了最大值,所以a[u]贡献为0
}

代码

#include<bits/stdc++.h>using namespace std;
using ll = long long;void solve() {ll n;cin >> n;vector<ll> a(n + 1);vector<vector<ll>> e(n + 1);for(ll i = 1; i <= n; i++){cin >> a[i];}for(ll i = 1; i < n; i++){ll x, y;cin >> x >> y;e[x].push_back(y);e[y].push_back(x);}vector<vector<ll>> dp(n + 1, vector<ll>(3, -1e18));ll ans = 0;auto dfs = [&](auto&& dfs, ll u, ll fa) -> void {ll sum = 0;for(auto v : e[u]){if(v == fa)continue;dfs(dfs, v, u);sum += dp[v][0];}for(auto v : e[u]){if(v == fa)continue;dp[u][0] = max(dp[u][0], sum - dp[v][0] + dp[v][1] - a[u]);dp[u][0] = max(dp[u][0], sum - dp[v][0] + dp[v][2] + a[u]);dp[u][1] = max(dp[u][1], sum - dp[v][0] + dp[v][1]);dp[u][2] = max(dp[u][2], sum - dp[v][0] + dp[v][2]);}dp[u][0] = max(dp[u][0], sum);dp[u][1] = max(dp[u][1], sum + a[u]);dp[u][2] = max(dp[u][2], sum - a[u]);ll mx1 = -1e18;ll mx2 = -1e18;for(auto v : e[u]){if(v == fa)continue;mx1 = max(mx1, dp[v][1] - dp[v][0]);mx2 = max(mx2, dp[v][2] - dp[v][0]);}if(mx1 > -1e18 && mx2 > -1e18){dp[u][0] = max(dp[u][0], sum + mx1 + mx2);}};dfs(dfs, 1, 0);cout << dp[1][0] << "\n";}int main(){ios::sync_with_stdio(0);cin.tie(0);solve();
}

G. Sorting

https://qoj.ac/contest/2513/problem/14307

思路

对于位置 \(i\) 和位置 \(j\) 的两个值可以无限次交换,显然连通即可排列有序,但如果需要按照从左到右有序则需要向冒泡排序一样,需要 \(n-1\) 个相邻的交换。

代码

#include<bits/stdc++.h>
using namespace std;
using ll = long long;void solve(){int n, m;cin >> n >> m;vector<int> vis(n);for(int i = 1; i <= m; i++){int a, b;cin >> a >> b;if(a > b)swap(a, b);if(b == a + 1){vis[a] = 1;}}for(int i = 1; i < n; i++){if(vis[i] == 0){cout << "No\n";return ;}}cout << "Yes\n";
}int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// int t;// cin >> t;// while(t--)solve();return 0;
}

I. Knapsack Problem

https://qoj.ac/contest/2513/problem/14309

思路

按题意模拟即可

代码

#include<bits/stdc++.h>
using namespace std;
using ll = long long;struct edge{int v;int w;
};
struct node{int id;int num;int v;bool operator<(const node & b)const {return v < b.v;}
};void solve(){int n, m, v, t;cin >> n >> m >> v >> t;vector<vector<edge>> e(n + 1);for(int i = 1; i <= m; i++){int a, b, c;cin >> a >> b >> c;e[a].push_back({b, c});e[b].push_back({a, c});}vector<int> ans(n + 1, 1e9);vector<int> vv(n + 1, 0);auto bfs = [&](){priority_queue<node> q;q.push({t, 1, v});while(!q.empty()){auto [u, num, now] = q.top();q.pop();if(num == ans[u]){if(now <= vv[u]){continue;}}else if(num > ans[u])continue;ans[u] = num;vv[u] = now;for(auto [k, w] : e[u]){int temp = ans[u];if(w > vv[u]){temp ++;if(w <= v){q.push({k, temp, v - w});}}else {q.push({k, temp, vv[u] - w});}}}};bfs();for(int i = 1; i <= n; i++){cout << (ans[i] == 1e9 ? -1 : ans[i]) << " ";}
}int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// int t;// cin >> t;// while(t--)solve();return 0;
}

M. Teleporter

https://qoj.ac/contest/2513/problem/14313

思路

看题意像分层图板子题,但 \(O(nm\,log\;(nm))\) 显然是无法接受的,想到手动在每一层转移(层与层之间单独跑 \(dij\)

代码

#include<bits/stdc++.h>using namespace std;
using ll = long long;struct node{ll v;ll w;bool operator<(const node& b)const{return w > b.w;}
};void solve() {ll n, m;cin >> n >> m;vector<vector<node>> e(n + 1);vector<vector<ll>> g(n + 1);for(ll i = 1; i < n; i++){ll x, y, z;cin >> x >> y >> z;e[x].push_back({y, z});e[y].push_back({x, z});} vector<vector<ll>> d(n + 1, vector<ll>(n + 1, 1e18));for(ll i = 1; i <= m; i++){ll x, y;cin >> x >> y;g[x].push_back(y);g[y].push_back(x);}for(ll i = 1; i <= n; i++){g[i].push_back(i);}int ok = 1;auto bfs = [&](){priority_queue<node> q;vector<int> vis(n + 1);q.push({1, 0});while(q.size()){auto [u, w] = q.top();q.pop();if(vis[u])continue;d[u][0] = w;vis[u] = 1;for(auto [v, k] : e[u]){if(!vis[v]){q.push({v, d[u][0] + k});}}}};bfs();auto bfs1 = [&](ll id){priority_queue<node> q;vector<int> vis(n + 1);for(int i = 1; i <= n; i++){for(auto v : g[i]){d[i][id] = min(d[i][id], d[v][id - 1]);if(d[i][id] == 0)break;}}for(int i = 1; i <= n; i++)q.push({i, d[i][id]});while(q.size()){auto [u, w] = q.top();q.pop();if(vis[u])continue;d[u][id] = w;vis[u] = 1;for(auto [v, k] : e[u]){if(d[v][id] > d[u][id] + k){q.push({v, d[u][id] + k});}}}for(ll u = 1; u <= n; u++){for(auto v : g[u]){d[v][id] = min(d[v][id], d[u][id - 1]);}}};for(ll i = 1; i <= n; i++){bfs1(i);}ll sum = 0;for(ll i = 0; i <= n; i++){sum = 0;for(ll j = 1; j <= n; j++){sum += d[j][i];}cout << sum << "\n";}   
}int main(){ios::sync_with_stdio(0);cin.tie(0);// ll t;// cin >> t;// while(t--)solve();
}

相关文章:

2025ICPC网络赛第一场(A,B,C,D,G,I,M)

A. Who Can Win https://qoj.ac/contest/2513/problem/14301 思路 按题意模拟,统计第 \(239min\) 时成绩最好的队伍,记为冠军队伍,从 \(240min\) 开始到比赛结束的所有队伍都假设提交通过,实时计算成绩,一旦超过 \(239min\) 前的成绩最好队伍同样记作冠军。 细节: 1.输出…...

Google Maps

Google Maps...

【TES600G】基于JFM7K325T FPGA+FT-M6678 DSP的全国产化信号处理平台

​ 产品概述 TES600G是一款基于FPGA+DSP协同处理架构的通用高性能实时信号处理平台,该平台采用1片国防科大的银河飞腾多核浮点/定点DSP FT-M6678作为主处理单元,采用1片复旦微的Kintex-7系列FPGA JFM7K325T16作为协处理单元,具有1个FMC子卡接口,具有4路SFP+万兆光纤接口,…...

KMS激活Windows系统(win10)

在开始菜单上右键,选择 Windows PowerShell(管理员),依次输入以下命令即可激活成功 slmgr /ipk NPPR9-FWDCX-D2C8J-H872K-2YT43 slmgr /skms kms.03k.org slmgr /ato 1、安装产品密钥,不同的操作系统激活码不一样,网上搜索下有很多,这些激活码不能在线直接激活,但可以通过…...

基于python3的http文件服务器

前言跨环境或者跨跳板机传输文件很麻烦,比如从windows系统跨跳板机传输文件到linux系统,这时候scp就不适用了。 比较简单的方式是,从windows系统开一个http文件服务,然后从linux系统直接使用http链接下载。 如果是自己的环境,直接使用python3 -m http.server --bind 0.0.0…...

大阪府

大阪府名称大阪城 心斋桥 道顿崛 海游馆 通天阁 四天王寺 环球影城 万博纪念公园 中之岛公园 天保山摩天轮...

sql server2008大批量插入数据

谨慎使用update 最好对应字段 直接使用insertDECLARE @pageIndex INTDECLARE @pageSize INTDECLARE @TotalpageIndex INTdeclare @rows as int SET @pageIndex = 1SET @pageSize = 10000set @TotalpageIndex=((select top 1 ID from [NewWeBusiness_PJM].[dbo].[Scale] order …...

【Office 2010】经典办公套件Office 2010——保姆级详细图文下载安装教程 - 详解

【Office 2010】经典办公套件Office 2010——保姆级详细图文下载安装教程 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…...

Eth-Trunk实验

...

HCIP—Eth-Trunk

...

一个还不错的,简单的,前端vue2后台框架

https://gitee.com/e4glet/vue-cli4-framwork相信坚持的力量,日复一日的习惯....

P4099 [HEOI2013] SAO

题意:给定一棵有 \(n\) 个点(\(n \le 1000\))的树,每条边 \((u, v)\) 有参数 \(c\) 表明 \(u\) 和 \(v\) 谁必须排在前面,求满足所有边条件的排列种数。思路:采用容斥原理解决。先以 \(1\) 为根,将所有 \(c = 1\) 的边看作无限制,求方案数,再通过容斥调整。可在树形DP…...

Linux chronyd 时间同步服务器,命令

Linux chronyd 时间同步服务器,命令chronyd 是 Linux 系统中常用的时间同步服务工具,以下是其常用命令:启动 / 停止 / 重启服务:# 启动服务 sudo systemctl start chronyd # 停止服务 sudo systemctl stop chronyd # 重启服务 sudo systemctl restart chronyd # 查看服务状…...

2025暑假集训总结lh

暑假进行了一个月的集训,也刷了不少题,参加了几场萌新赛。让我看出来我目前最大的问题:基础不太牢固。 以前学习c语言,从来没有看过具体的课程,从来都是用到什么就搜什么来学习,导致没有具体的框架在脑子里。 不少题,大致思路我能看出来,也大概知道要用哪些板子,但是一…...

ET框架的 阻止 ddos 设计,软路由

https://et-framework.cn/d/17ET7 软路由 ET7分支已经添加软路由功能~早期分享 最近在做防攻击设计,今天终于完成并且实现了,这里分享给大家,特别是搞棋牌的项目,还有小公司没法通过法律手段来防止别人攻击。特别有用处。因为高防实在太贵,用不起。 设计思路如下:需要有很…...

Serena 最佳实践方案

1. 全局安装 Serena 你需要用 包名 serena-agent 来安装,但安装完后命令行工具叫 serena: uv tool install --from git+https://github.com/oraios/serena serena-agent安装成功后,全局会有一个可执行命令: serena --help后续操作 升级: uv tool upgrade serena-agent卸载…...

C++ 零散记录:条件编译与 if constexpr 的区别

核心区别 条件编译发生在预处理期,由预处理器根据条件关掉代码片段,即不让这些代码到达编译期。 if constexpr:发生在编译期,由编译器在编译期确定要执行的分支。 其他所有的区别都是此核心区别的衍生。 用法的区别 能放的位置 条件编译几乎在哪都行。 if constexpr 只能在…...

ubuntu 22.04安装mysql8.0.41(glibc2.17)

环境Os:ubuntu 22.04 desktop桌面版mysql:mysql:8.0.41 glibc2.17查看操作系统信息root@db:/soft# ldd --version ldd (Ubuntu GLIBC 2.35-0ubuntu3) 2.35 Copyright (C) 2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. …...

cURL调试功能磁盘空间耗尽导致拒绝服务漏洞分析

本文详细分析了cURL工具在使用--trace或--trace-ascii选项时存在的磁盘空间耗尽漏洞,攻击者可通过发送大量数据使日志文件无限增长,导致系统拒绝服务,并提供了修复方案。报告 #3250490 - 磁盘空间耗尽导致拒绝服务(DoS) 描述 当使用--trace或--trace-ascii选项处理大量数据时…...

mysql常用函数,数据处理效率提升实战指南

还在为SQL查询效率低下而烦恼吗?MySQL内置的强大函数库能让你事半功倍!无论是字符串处理、日期计算还是数值运算,熟练使用这些函数能极大简化开发工作。本文将全面解析MySQL最实用的内置函数,助你轻松应对各种数据处理需求。 字符串处理函数的妙用 在处理用户输入、日志分析…...

Tita 一体化管理:赋能互联网企业产品迭代全流程

在互联网行业,产品迭代速度直接决定企业的市场竞争力。然而,多数互联网企业在产品从需求提出到最终上线的全流程中,常面临需求混乱、开发低效、上线失控等问题。Tita 以一体化管理思维,打通产品迭代的全链路,让每一次版本更新都精准、高效、可控。 一、互联网企业产品迭代…...

【2025-09-15】动起来了

20:00仅仅通过改变自己,我们就能改变我们的整个人生和身边人的态度。——鲁道夫德雷克斯今天打算下班在园区投投篮,缓解一下职业病问题。临下班前的一个多小时,突然下起了大雨。那在还要想想,换种运动方式。我的车后备箱有几种运动装备,例如跑步、篮球和游泳。下雨天最好的…...

二叉树的层次遍历

前言 代码 非递归,使用size记录我们到第几层了,每次存入一层的node只有遍历完了才进入下一次循环,queue为空了就结束 代码: class Solution { public:vector<vector<int>> levelOrder(TreeNode* root) {queue<TreeNode*> que;if (root != NULL) que.push…...

Mysql索引失效场景

以下是导致索引失效的常见情况,分类并举例说明: 1. 对索引列进行运算或函数操作 当在索引列上使用函数、表达式、计算或类型转换时,MySQL无法直接使用索引来定位数据。 失效示例:sql-- 使用函数 SELECT * FROM users WHERE YEAR(create_time) = 2023; -- 使用表达式 SELECT…...

写了一个BBP算法的实现库,欢迎讨论

BBP 算法可以直接计算 π 的第 n 个十六进制数字,而无需计算前面的所有数字。 我的仓库:https://github.com/davelet/bbp先来说说π这个老朋友吧。π,3.14159……,数学界的“网红”,从古希腊的阿基米德开始,就有无数人试图用它丈量圆的秘密。为什么这么迷人?因为它是个无…...

统计建模库 statsmodels(时序单变量数据)

statsmodels 是一个基于 Python 的科学计算库,专注于统计数据分析、统计模型估计、统计检验和数据探索。它提供了对 R 语言中许多统计方法的完整复现,同时紧密集成在 Python 的科学计算生态(NumPy, Pandas, SciPy)中。 1. 线性模型 这是最基础也是最常用的部分。普通最小二…...

【云栖大会】AI原生、AI可观测、AI Serverless、AI中间件,4场论坛20+议题公布!

【云栖大会】AI原生、AI可观测、AI Serverless、AI中间件,4场论坛20+议题公布!大模型技术既展现出重塑生产力的巨大潜力 也孕育着重构生产关系的无限可能 为全球数字经济的智能化升级注入全新动能 2025 年 9 月 24 日至 26 日,杭州云栖小镇 4 大论坛、20+ 主题分享 从云原生…...

docker-oracle安装

1.dockere 拉取oracle镜像 # 下载镜像 docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c[!TIP] 备注:镜像有6.2G,我上传了夸克网盘 链接:https://pan.quark.cn/s/32ea287adca8?pwd=E19X 打包和解压命令 docker save > oracle-19c.tar registry.cn-han…...

static注意事项

static方法中没有this.xxx 不带static的方法可以调用所有变量或方法 带static只能访问带static的变量或方法...

微算法科技(NASDAQ: MLGO)研究隐私计算区块链框架,赋能敏感数据流通

在当今数字化时代,数据成为了极为重要的资产,然而在医疗、金融等诸多关键领域,数据孤岛现象严重,各机构间难以实现有效的数据共享。同时,隐私泄露风险又如同高悬之剑,让数据所有者顾虑重重,不敢轻易开放数据。微算法科技(NASDAQ: MLGO)正是敏锐察觉到这一困境,决心结…...

2D变换——坐标系

Halcon的坐标系主要分为三类。像素坐标系、亚像素坐标系、亚像素边缘坐标系。像素坐标系和亚像素坐标系统称为Halcon标准坐标系。亚像素边缘坐标系(Edge Centered)称为Halcon非标准坐标系。 Halcon标准坐标系 在Halcon标准坐标系下,坐标系的原点在图像的左上角像素的中心位置。…...

关于POST NETLIST (后提网表)备注

Calibre PEX SPI & calibreview ,以及StarRC介绍 Calibre PEX SPI & calibreview ,以及StarRC PEX SPI 和 PEX CALIBREVIEW 是输出结果的两种不同形式,代表了处理寄生参数的两种方法论:合并 vs 反标。 Synopsys StarRC 是生成这些结果所需要的工具之一。它是一个“提…...

P13693 [CEOI 2025] Equal Mex 题解

Description 罗马尼亚贵族们普遍认为,一个整数数组 \(a[0], a[1], a[2], \ldots, a[m - 1]\) 的美丽值定义为:满足以下条件的正整数 \(k\) 的个数——你可以将该数组划分为 \(k\) 个互不重叠的子数组(即连续元素的序列),使得:每个元素恰好属于一个子数组; 所有子数组具有…...

力扣46题 全排列

题型属于回溯算法 1.递归函数参数 排列有序,因此需要一个used数组,标记已经选择的元素 2.递归终止条件 当收集元素的数组path的大小达到和nums数组一样大的时候,说明找到了一个全排列,也表示达到了叶子节点。 3.单层搜索的逻辑 与组合问题相比最大的不同就是for循环里不用s…...

C++ std::unordered_map

std::unordered_map 是 C++ STL 中无序键值对容器的核心成员,底层基于哈希表实现,存储唯一键(key)与对应值(value)的映射关系,且不保证键的顺序。其最大优势是插入、查找、删除操作的平均时间复杂度为 O(1),适合对效率敏感且无需键有序的场景。 1、底层数据结构与特性 …...

Rust mut

fn main() {// `let mut var`: mutable bindinglet mut i = 5;i = 6; // 整体替换println!("i: i32= {}", i);let mut s = String::from("Hi");s = String::from("Hello"); // 整体替换s.push_str(" World!"); // 部分修改println!(&q…...

数论与组合(模板)

gcd与exgcd inline int gcd(int a, int b) { return b == 0 : a ? gcd(b, a % b); } inline ll exgcd(ll a, ll b, ll &x, ll &y) {if (b == 0) { x = 1, y = 0; return a; }ll d = exgcd(b, a % b, x, y);ll z = x; x = y; y = z - y * (a / b);return d; }...

自动感应门的感应雷达怎么选型?

​  感应门目前在市面上用的还是比较多的,不仅能给人一种高级感同时还能够给开空调的空间起到节能的作用,广泛应用在公共营业场所比如商超酒店机场等场所。在感应门控制系统中,雷达传感器作为核心检测模块,其选型直接决定了整个感应门的响应门的速度、检测精度、抗干扰能…...

hadoop部署步骤

一、环境准备(centos7.9)点击查看代码 1、关闭防火墙 [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable firewalld2、关闭selinux [root@localhost ~]# sed -i s#SELINUX=enforcing#SELINUX=disabled#g /etc/selinux/config3、修改主机名…...

达成调用libchdb.a静态连接库中的未公开导出函数

达成调用libchdb.a静态连接库中的未公开导出函数pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace …...

一些寄存器相关的知识

考试要求: 只需关注x86汇编语言 题目给出的某段简单程序的C语言,汇编语言,机械语言表示,能结合c语言看懂汇编语言的关键语句 汇编语言机器语言一一对应,结合汇编语言分析机器语言指令的格式,寻址方式 不会考:将c语言人工翻译成汇编语言或机器语言 ARM和MIPS不考 x86架构…...

Redis常用命令

目录启动主节点启动从节点启动哨兵节点查看主从状态查看哨兵状态方式 1:通过 redis-cli 关闭(需认证)方式 2:如果未设置密码方式 3:通过进程 ID 关闭(不推荐,可能导致数据丢失)参考资料 启动主节点 redis-server /usr/local/install/redis_sentinel/master/redis.conf …...

力扣42题 接雨水,力扣84题 柱状图中最大的矩形,力扣739题 每日温度

这三道题都是单调栈的应用 力扣739题 每日温度 使用单调栈主要有三个判断条件 1.当前遍历的元素T[i]小于栈顶元素T[st.top()]的情况 2.当前遍历的元素T[i]等于栈顶元素T[st.top()]的情况 3.当前遍历的元素T[i]大于栈顶元素T[st.top()]的情况 要保持单调递增的栈,如果栈头元…...

使用HTTPS 服务在浏览器端启用摄像头的方式解析

使用HTTPS 服务在浏览器端启用摄像头的方式解析pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !…...

5分钟SAE极速部署Dify,高效开发AI智能体应用

自2024年 Dify.ai 开源以来,全球开发者基于其框架已构建超2.3万个智能客服、企业知识库、AI 营销助手等 AI 应用项目。Dify 通过可视化拖拽操作即可实现生产级 AI 智能体开发,显著降低了技术门槛。 然而,本地私有化部署模式常面临维护成本高、可靠性不足等问题。阿里云Serve…...

.NET驾驭Word之力:理解Word对象模型核心 (Application, Document, Range)

在使用MudTools.OfficeInterop.Word库进行Word文档自动化处理时,深入理解Word对象模型的核心组件是至关重要的。Word对象模型提供了一套层次化的结构,使开发者能够通过编程方式控制Word应用程序、文档以及文档内容。本章将详细介绍Word对象模型中最核心的三个对象:Applicati…...

事件轮循机制EventLoop

事件轮循机制 Event Loop(事件循环)是 JavaScript 中非常重要的概念,它是 JavaScript 执行模型的核心部分。为了理解事件循环,我们需要从 JavaScript 的单线程特性入手。 1. 单线程模型 js是单线程的, 这意味着它一次只能执行一个任务 但是现代需要处理大量异步操作(处理用…...

ruoyi-vue初步接触

因为最近参加了一个比赛,培训的时候说最终考试是要求使用ruoyi-vue来做功能,于是我在网上找到了ruoyi这个项目,准备给他搭建起来。 找了一下官网 发现了这个 准备工作然后我就开始查看本机环境java --version openjdk 21.0.8 2025-07-15 OpenJDK Runtime Environment (build…...

AT_arc180_c [ARC180C] Subsequence and Prefix Sum

考虑只让你进行一次操作,值域很小,DP。 考虑设 \(f_{i, j}\) 表示到了第 \(i\) 个数,选择的子序列和为 \(j\) 的方案数,显然只需要判断当前位置选没选即可。 如果只是这样,这个题还放不到 ARC 的 C。 发现如果 \(j = 0\),会出现一些奇怪的去重问题,就是这个时候选和不选…...

如何快速看懂「祖传项目」?Qoder 强势推出新利器

今天, Repo Wiki 正式上线新功能:支持Wiki 共享、编辑和导出。为了让知识更好地在团队中流转,Qoder 提供了 Wiki 共享能力。当用户在本地生成 Wiki 时,会自动在代码库中创建一个专属目录,只需将该目录推送至代码仓库,即可将生成的文档轻松共享给团队成员,实现协作共建。…...