2025 ICPC Xian Regional Contest 【LJIF】

news/2025/10/26 17:35:34/文章来源:https://www.cnblogs.com/yuwj/p/19167060

写在前面

好像不能传播题解,然后这是我自己补的上周那场区域赛,应该没问题吧

怎么说呢,反正 vp 打铁 3 题,补题银牌就补不动了

这里就只放下代码了

该加训了,但是说实话这个难度我是真没训过,写不出也正常,多校也写不出铜牌题,哎哎哎

虽然现在是青名,但是还是只能做出签到题吗,铜牌题感觉得有 CF 2200 了吧,我现在还没真正出过这个难度分段的题目

L

// 多边形合法条件是,其他所有边的和 > 最大边
// 对于每个 k,本质上就是选择最大的 k 条边使得这个多边形成立,即
// 设最大的边长为 a_r,则 a_r < sum(r-k+1,r-1)
// 对于固定的 r,设定阈值为 th < pre[r-1] - a_r,设最大的 t < r,使 pre[t] < th
// 最小的可行的 k 就是,k(r) = r - t
// 就是对每个 k 选择最大的 r,满足 k \in [k(r), r],这样周长 pre[k] - pre[r - k] 最大
void Solve(){cin >> n;vector<int> num(n+1);For(i,1,n) cin >> num[i];if(n < 3){for(int i=1;i<=n;++i) cout << 0 << " \n"[i==n];return;}sort(num.begin()+1,num.end());vector<int> pre(n+1), suf(n+2);for(int i=1;i<=n;++i) pre[i] = pre[i-1] + num[i];vector<int> ans(n+1);vector<vector<int>> pos(n+1);for(int i = 3; i <= n; ++i){int now = pre[i-1] - num[i];int id = lower_bound(all(pre), now) - pre.begin() - 1;int k = max(3ll, i - id);if(k <= i)pos[k].pb(i);}priority_queue<int> pq;for(int k = 3; k <= n; ++k){for(auto r : pos[k]) pq.push(r);while(pq.size() && pq.top() < k) pq.pop();if(pq.size()){auto r = pq.top();ans[k] = pre[r] - pre[r-k];}}For(i,1,n) cout << ans[i] << " \n"[i==n];
}

J

struct Info{int mn, u, nmn, v;
}info[Maxn];int up[Maxn][25],dep[Maxn],cost[Maxn];
void dfs(int u,int fa){up[u][0] = fa;For(i,1,20) up[u][i] = up[up[u][i-1]][i-1];for(auto v : G[u]){if(v==fa) continue;dep[v] = dep[u] + 1;if(cost[v] < info[u].mn) info[u].nmn = info[u].mn, info[u].v = info[u].u, info[u].mn = cost[v], info[u].u = v;else if(cost[v] < info[u].nmn) info[u].nmn = cost[v], info[u].v = v;dfs(v,u);}
}int get(int step,int x){int y = x;for(int i=20;i>=0;--i){if(step>=(1<<i)) y = up[y][i], step -= (1<<i);}return y;
}// 1.u,v提高到相同深度,就是按 pw[2] 从大往小减少深度即可
// 	如果此时两点相同说明在同一条链上,直接返回即可
// 2.一起往上跳直到在lca下方
int LCA(int u,int v){if(dep[u] < dep[v]) swap(u,v);int d = dep[u] - dep[v];for(int i=20;i>=0;--i){if(d & (1ll<<i)) u = up[u][i];}if(u == v) return u;for(int i = 20; i>=0;--i){if(up[u][i] != up[v][i]){u = up[u][i], v = up[v][i];}}return up[u][0];
}void Solve(){cin >> n >> m; For(i,1,n) G[i].clear(), info[i] = {INT_MAX,0,INT_MAX,0};For(i,1,n) cin >> cost[i];For(i,1,n-1) cin >> u >> v, G[u].pb(v), G[v].pb(u);function<void(int,int)> DP = [&](int u,int fa) -> void{int mn = INT_MAX, nmn = INT_MAX;for(auto v : G[u]){if(v == fa) continue;DP(v,u);if(cost[v] < mn) nmn = mn, mn = cost[v];else if(cost[v] < nmn) nmn = cost[v];}cost[u] = min(cost[u], mn + nmn);};DP(1,0);dfs(1,0);// For(i,1,n) cerr << cost[i] << " \n"[i == n];vector<int> sum(n+1,LLONG_MAX), d(n+1);function<void(int,int)> dfs2 = [&](int u,int fa) -> void{for(auto v : G[u]){if(v == fa) continue;sum[v] = min(sum[v], sum[u] + (v != info[u].u ? info[u].mn : info[u].nmn));dfs2(v,u);}};sum[1] = cost[1];// cerr << info[1].nmn << '\n';dfs2(1,0);// For(i,1,n) cerr << sum[i] << " \n"[i==n];while(m--){cin >> x >> y;if(LCA(x, y) != y) {cout << "-1\n"; continue;}cout << (sum[x] - sum[y]) << '\n';}
}

I

// 不存在第三个点作为中间点使得 i,j (i ^ k) ^ (k ^ j) = (i ^ j)
// A[u][v] ^ A[u][R] ^ A[v][R] = lca,留下的点
int A[2005][2005];
void Solve(){cin >> n;for(int i = 1; i <= n; ++i){for(int j = i; j <= n; ++j){cin >> A[i][j];A[j][i] = A[i][j];}}function<int(int,int)> lca = [&](int u, int v) -> int{return A[u][v] ^ A[u][1] ^ A[1][v];};vector<pii> ans;for(int v = 2; v <= n; ++v){int p = -1;for(int u = 1; u <= n; ++u) if(v != u){if(lca(u,v) == u){if(p == -1) p = u;else{int fa = lca(p,u);if(fa == p) p = u;}}}ans.pb({p,v});}for(auto [u,v] : ans) cout << u << ' ' << v << '\n';
}

F

// 每次都处理最早的事件,处理相向事件和已经停止的事件
struct Event{int time, op, id;bool operator>(const Event o) const{return time > o.time;	};
};void Solve(){cin >> n; For(i,1,n) G[i].clear();vector<int> t(n+1), dir(n+1), a(n+1);For(i,1,n) cin >> t[i], G[t[i]].pb(i);For(i,1,n) cin >> a[i];For(i,1,n) dir[i] = (a[t[i]] > a[i] ? 1 : -1);priority_queue<Event,vector<Event>,greater<>> pq;auto D = [&](int i)->int{return abs(a[i] - a[t[i]]);};for(int i = 1; i <= n; ++i) if(dir[i] != dir[t[i]]) pq.push({D(i),0,i});vector<int> ans(n+1,-1);int cnt = 0;auto work = [&](int u,int T){if(ans[u] != -1) return;ans[u] = T, cnt++;for(auto v : G[u]){ // 对所有儿子处理未停止的,相向而行,还是同向而行int nT, d = D(v);if(dir[v] == dir[u]){nT = ans[u] + 2*d;}else{nT = (ans[u] < d ? 2*d - ans[u] : d);}pq.push({nT, 1, v});}};while(cnt < n){auto [T, op, id] = pq.top(); pq.pop();if (ans[id] != -1) continue;if(op == 0){ // 相向而行int d = D(id);if(ans[t[id]] != -1 && ans[t[id]] < d){ // 如果目标更早停止,则变成追静止pq.push({2*d - ans[t[id]], 1, id});}else{work(id,d); // 否则就可以直接作为答案时间}}else{ // 已经停止了work(id, T);}}For(i,1,n) cout << ans[i] << " \n"[i == n];
}

写在最后

训练难度该加强了,天天捧着 1600 - 1800 也做不出难题,虽然这个分段自己的出题率也可能才 40% ?

还要写作业,就这样了,该训了

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

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

相关文章

安装配置 Claude Code Router 备忘录

通过 zcf 安装和配置 Claude 很简单,但是要在多个模型、供应商之间切换,还是有点麻烦。后来在 zcf 中看到有 CCR 代理,发现这个开源工具可以接入多个模型供应商或多个模型,使用起来方便不少。下面简要记录一下配置…

学弟欢乐赛 - T3 T4 题解

T3 一道经典经典的计数题目。 我们考虑如果没有进行交换的总方案数。 因为要求子序列是 xyz,我们先从 y 开始考虑。我们假设这个 y 前面有 \(cnt1\) 个x,后面有 \(cnt2\) 个,根据乘法原理,我们很容易知道这个 y 的…

2025年空调维保厂家推荐排行榜,空调维保/末端保养/空调保养/空调清洗/水处理公司专业服务与高效维护首选

2025年空调维保厂家推荐排行榜,空调维保/末端保养/空调保养/空调清洗/水处理公司专业服务与高效维护首选 随着现代建筑对室内环境质量要求的不断提升,中央空调系统的稳定运行已成为商业运营和工业生产的重要保障。空…

2025 ICPC Xian Regional Contest

2025 ICPC Xian Regional Contest写在前面 好像不能传播题解,然后这是我自己补的上周那场区域赛,应该没问题吧 怎么说呢,反正 vp 打铁 3 题,补题银牌就补不动了 这里就只放下代码了 该加训了,但是说实话这个难度我…

2025年自动包装机厂家推荐排行榜:食品包装机,药品包装机,五金配件包装机,全自动包装设备公司精选

2025年自动包装机厂家推荐排行榜:食品包装机,药品包装机,五金配件包装机,全自动包装设备公司精选 随着制造业智能化转型的深入推进,自动包装设备行业正迎来技术革新的关键时期。在食品、药品、五金配件等细分领域…

2025 年 10 月系统门窗厂商榜单揭晓,专业智造实力与品牌保障口碑优选

2025 年 10 月系统门窗厂商榜单由中国建筑金属结构协会、全国工商联家具装饰业商会联合发布,此次评选聚焦系统门窗 “制造精细化、保障全周期” 核心要求,以《铝合金门窗》(GB/T 8478-2008)及《系统门窗技术要求》…

2025年半自动包装机厂家权威推荐榜:食品/医药/化工行业专用机型精选,高效稳定与性价比之选

2025年半自动包装机厂家权威推荐榜:食品/医药/化工行业专用机型精选,高效稳定与性价比之选 随着现代工业自动化水平的不断提升,半自动包装机在食品、医药、化工等行业的应用日益广泛。这类设备在保持人工操作灵活性…

2025年环境试验设备厂家推荐排行榜,冷热冲击/高低温/快速温变试验箱,氙灯/紫外耐候气候环境试验箱,步入式/恒温恒湿试验箱,高压加速老化/HAST/PCT试验箱,机械环境/淋雨/砂尘试验箱公司推荐

2025年环境试验设备厂家推荐排行榜:权威评测与采购指南 环境试验设备作为产品质量验证的关键工具,在电子、汽车、航空航天、新材料等领域发挥着不可替代的作用。随着技术进步和行业标准的提升,环境试验设备的技术含…

OI 笑传 #23

Yushinron今天是 ABC429 CDEF。被 E 卡到破防说是。代码能力场。 ABC429C 给三元组的样子分个类,\(AAB,ABB,ABA\) 这三种。 对于前两种,用个桶前缀后缀一下算贡献即可。 对于中间的,我们动态维护每种数左边和右边数…

[ java 锁 - 04 - Integer o = 1 作为 锁的问题]

关于 Integer 作为锁对象的风险总结 核心结论 Integer(如 Integer lock = 1;)不适合作为 synchronized 的锁对象,因缓存复用和不可变性导致同步逻辑失效。 关键风险点缓存复用导致锁冲突 Java 对 [-128, 127] 范围内…

2025年自动提升机厂家权威推荐榜单:专业制造与高效解决方案深度解析

2025年自动提升机厂家权威推荐榜单:专业制造与高效解决方案深度解析 在工业自动化快速发展的今天,自动提升机作为物料输送系统的核心设备,其性能优劣直接影响生产效率和运营成本。随着智能制造和工业4.0理念的深入应…

golang: gin项目常用第三方库

一,安装gin $ go get github.com/gin-gonic/gin@latest二,安装zap $ go get -u go.uber.org/zap三,安装validator $ go get -u github.com/go-playground/validator/v10四,安装gorm gorm $ go get -u gorm.io/gorm …

ssh: 连接报错

一,报错信息: $ ssh -p 22 root@123.124.125.84 Unable to negotiate with 123.124.125.84 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss 二,问题原因 个错误消息表明你的SSH客户端和服…

python3: ubuntu上安装时报错: No module named zlib

一,报错信息: Traceback (most recent call last):File "<frozen zipimport>", line 620, in _get_decompress_func ModuleNotFoundError: No module named zlib二,解决: 安装zlib库 # wget https:/…

2025年提升机厂家权威推荐榜:自动提升机、垂直提升机、斗式提升机、物料提升设备源头厂家精选

2025年提升机厂家权威推荐榜:自动提升机、垂直提升机、斗式提升机、物料提升设备源头厂家精选 在工业自动化快速发展的今天,提升机作为物料输送系统的核心设备,其性能直接影响生产效率和运营成本。随着智能制造理念…

[java 锁 - 03 重入写法 ]

可重入锁的核心是“同一线程可重复获取同一把锁”,Java 中 synchronized 和 ReentrantLock 都是可重入锁,写法各有特点。下面分别两种锁的可重入用法示例,清晰展示“重复获取锁”的场景: 一、synchronized 可重入写…

2025年包装机厂家权威推荐榜:自动包装机,半自动包装机,高效包装设备源头厂家精选与选购指南

2025年包装机厂家权威推荐榜:自动包装机,半自动包装机,高效包装设备源头厂家精选与选购指南 随着制造业智能化转型的深入推进,包装机械行业正迎来技术革新的关键时期。自动包装机和半自动包装机作为生产线的重要环…

实用指南:Golang 中的字符串:常见错误和最佳实践

实用指南:Golang 中的字符串:常见错误和最佳实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

2025年自动上料机厂家推荐排行榜:螺旋上料机,真空上料机,粉末上料机,颗粒上料机专业制造商精选指南

2025年自动上料机厂家推荐排行榜:螺旋上料机,真空上料机,粉末上料机,颗粒上料机专业制造商精选指南 随着工业自动化进程的加速推进,自动上料机作为生产线上的关键设备,其技术水平和性能表现直接影响着生产效率和…

完整教程:iOS 抓包工具有哪些?实战对比、场景分工与开发者排查流程

完整教程:iOS 抓包工具有哪些?实战对比、场景分工与开发者排查流程2025-10-26 17:09 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto …