尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Follow the Penguins

Follow the Penguins
📅 发布时间:2026/6/19 5:50:28

题意:

给定若干个点,它们有一个要追赶的点和当前位置,求最后所有点停止的时间,(一个点移动的速度为0.5)

思路:

使用set模拟优先队列

求出每个点移动的方向(一定不变了)

存一个pair<当前点和追赶点的距离 即time(相向而行时time=dis/2),当前点>

第一个停的点一定是相向而行的点

把所有以这个点为目标的点距离计算一下

避免精度丢失位置要乘2

int n;
const int M=5e5+5;
int t[M];
int a[M];
int dir[M];vector<int>bt[M];
int ans[M];
int npos[M];
void solve(){cin>>n;rep(i,1,n)cin>>t[i],bt[t[i]].pb(i);rep(i,1,n)cin>>a[i],a[i]*=2;rep(i,1,n){int j=t[i];if(a[i]>a[j])dir[i]=-1;else dir[i]=1;}set<pii>s;rep(i,1,n){if(dir[i]!=dir[t[i]]){s.insert({abs(a[i]-a[t[i]])>>1 ,i});}}while(s.size()){auto[time,x]=*s.begin();s.erase(s.begin());if(ans[x])continue;ans[x]=time;npos[x]=a[x]+dir[x]*time;for(auto y:bt[x]){s.erase( { abs(a[y]-a[t[y]])>>1 ,y } );s.insert( { abs(a[y]-npos[x]), y } );//为什么y不用计算time时刻的位置?因为x一定先比y停,y此时需要追赶的就是一开始的位置和npos[x]的距离差}}rep(i,1,n){cout<<ans[i]<<' ';}cout<<endl;
}

相关新闻

  • 2025年提分系统系统怎么选
  • 2025年肃宁双十一眼镜品牌权威推荐榜单:眼镜/眼睛价格/眼镜店品牌精选
  • 2025年锡熔液抗氧化还原粉厂家排行榜

最新新闻

  • 2026苏州钻石回收实测|国标4C定级,全城无套路靠谱门店变现指南 - 薛定谔的梨花猫
  • C语言宽字符处理:wmemcmp、wmemcpy、wprintf核心函数详解与实战
  • 多模态大语言模型LISA
  • 2026长沙回收百达翡丽手表门店分级指南,一线标杆店铺评级,区分正规与小作坊 - 名奢变现站
  • 如何通过WeChatMsg实现微信聊天记录的本地化解析与数据主权保护?
  • 告别GUI开发噩梦:用Dear ImGui在30分钟内为C++项目添加专业界面

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号