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

题解:P14452 [ICPC 2025 Xian R] Follow the Penguins

(为什么还没有人写题解)

Solution

最暴力的方式肯定是直接按时间顺序模拟,但是会因为时间过长而超时,所以我们只在有效的时间点进行操作就好了。

有效的时间点自然是企鹅相遇的时候,那么就可以用一个 \(\mathtt{set}\) 来维护每只企鹅的预计相遇时间,用 \(\mathtt{vector}\) 数组来统计每只企鹅是哪些企鹅的目标。初始时只有和目标企鹅相向走的企鹅有预计时间,并且这个时间就是它最后的答案,而同向的预计时间先设为无穷大。每次取 \(\mathtt{set}\) 中时间最小的企鹅,计算出它相遇时停止的位置,得到以这只企鹅为目标的所有企鹅的预计时间,并在 \(\mathtt{set}\) 中更新这些企鹅的预计时间即可。

Code

#include<bits/stdc++.h>
using namespace std;
namespace io{(快读)}using namespace io;
const int N=5e5+5;
int n,now,t[N],a[N],w[N],nowt[N],ans[N];
vector<int>p[N];
set<pair<int,int>>S;
int main(){read(n);for(int i=1;i<=n;i++){read(t[i]);p[t[i]].push_back(i);}for(int i=1;i<=n;i++)a[i]=read()*2;//乘2避免小数for(int i=1;i<=n;i++)w[i]=(a[i]<=a[t[i]]);//每只企鹅移动方向for(int i=1;i<=n;i++){nowt[i]=((w[i]^w[t[i]])?abs(a[i]-a[t[i]])/2:(int)2e9);//预计时间S.insert(make_pair(nowt[i],i));}while(!S.empty()){int ti=S.begin()->first,x=S.begin()->second;S.erase(S.begin());now=ti;//当前时刻ans[x]=now;int posx=(w[x]?a[x]+now:a[x]-now);//停止位置for(int y:p[x]){auto iy=S.find(make_pair(nowt[y],y));if(iy==S.end())continue;S.erase(iy);int posy=(w[y]?a[y]+now:a[y]-now);//此时这只企鹅的位置nowt[y]=now+abs(posx-posy);S.insert(make_pair(nowt[y],y));//更新}}for(int i=1;i<=n;i++)writesp(ans[i]);return 0;
}
http://www.jsqmd.com/news/42186/

相关文章:

  • Atcoder 432 A-F 总结+题解
  • 用 Rust 实现验证码识别
  • 结合前缀和进行差分数组的学习理解
  • Rust 实现验证码识别
  • 高安全性 PHP 2FA 开发指南:Authenticator 扫码验证实现方案
  • 20232417 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • Elixir 实现验证码识别
  • 2025 年空运物流公司推荐排行榜(广东地区重点推荐) 广州 / 深圳 / 佛山 / 东莞 ⇄ 澳洲 / 新西兰 / 悉尼 / 新加坡 / 墨尔本 空运专线物流公司推荐
  • 终结挑战的元回应 ——当问题本身成为答案的生成器
  • [学习笔记] JMM 汇总:从概念到底层原理
  • Python 3.14 实用技巧:10个让代码更清晰的小改进
  • 各组件证书配置文件yml
  • 模型管理与树形结构
  • 20232416 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • 2025镇江、常州、无锡、苏州、高邮、濮阳、郑州、嘉兴、扬州物流公司推荐:2025地区物流/仓储/供应链/配送中心企业最新排行,江浙沪区域运输服务口碑榜
  • 【题解】AT_abc432_e [ABC432E] Clamp
  • WireWorld美国线世界中国企业代理资质结构化列表
  • 关于python的库的层级引用问题
  • jmeter查看天气/快递操作
  • 详细介绍:00x01.Vulnhub系列DC-1靶机渗透测试:从Drupal漏洞到Root权限的完整攻防
  • 详细介绍:MySQL——用户权限和管理
  • 完整教程:配置驱动开发:初探零代码构建嵌入式软件配置工具
  • 2025 年海运物流专线公司推荐排行榜(广东地区重点推荐) 广州 / 深圳 / 佛山 / 东莞 ⇄ 澳洲 / 加拿大 / 新西兰物流运输公司推荐
  • 【CSP-J 2025】T4 多边形 polygon 题解
  • 回退背包
  • Django F对象完全指南:数据库层面的字段操作
  • 如何计算一台服务器最大TCP连接数
  • module jdk.compiler does not “以” com.sun.tools.javac.processing” to unnamed module
  • nginx 响应html内容
  • Why cant Google appear in New York?