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

P16185 [LBA-OI R1 B] 战术突破 题解

题目传送锚点

在博客园食用更佳

题意比较明确,这里不再赘述。

::::info[思路]{open}

时限和 \(1 \le n \le 5 \times 10^6\) 告诉我们,这道题是个 dp。

定义 \(f_i\) 表示走到第 \(i\) 格需要的最短时间,最后输出 \(f_n\) 即可。

转移有两种(如题),第二种(战术换位)需要处理出 \(a_i\) 上一次出现的位置,比较好处理,具体的见代码中的 \(last\) 数组。

第一种也比较简单,处理完第 \(i\) 次战术换位后往后拓展即可,注意不要越界。

注意到题面说过:

请注意常数因子对程序效率的影响。

而处理分数是会用到 \(gcd\),常数较大,所以应减少使用限制,比如我在代码第 \(51\) 行加了限制。这导致我在考场上卡常卡了半个小时,唐完了。

::::

::::success[代码]

#include<bits/stdc++.h>
#define int long long
using namespace std;int n,x,y,k,w,z[100],a[5000001],last[5000001];struct node
{int x;int y;
}s,f[5000001];node minn(node q,node p)
{x=q.x*p.y;y=p.x*q.y;if(x<=y) return q;return p;
}node add(node q,int xx,int yy)
{s.y=q.y*yy;s.x=q.x*yy+xx*q.y;return s;
}signed main()
{ios::sync_with_stdio(false);cin.tie();cout.tie();cin>>n;for(int i=1;i<=n;++i){cin>>a[i];f[i].x=0x7fffffff;f[i].y=1;last[i]=z[a[i]];z[a[i]]=i;}f[1].x=0;for(int i=1;i<=n;++i){if(last[i]!=0){s.x=f[last[i]].x+f[last[i]].y;s.y=f[last[i]].y;f[i]=minn(f[i],s);}if(f[i].x>100000000||f[i].y>100000000){k=__gcd(f[i].x,f[i].y);f[i].x/=k;f[i].y/=k;}w=min(n,i+a[i]);for(int j=i+1;j<=w;++j) f[j]=minn(f[j],add(f[i],j-i,a[i]));}k=__gcd(f[n].x,f[n].y);f[n].x/=k;f[n].y/=k;printf("%lld %lld",f[n].x,f[n].y);return 0;
}

::::

http://www.jsqmd.com/news/593813/

相关文章:

  • Steam Depot清单自动化工具:Onekey实现游戏数据高效管理的完整方案
  • 智能图片采集工具Image-Downloader:从需求到落地的完整指南
  • 【C++第二十五章】智能指针
  • SpringBoot + 本地事务表 + 定时扫描补偿:轻量级方案实现最终一致性,无中间件依赖
  • 计算机毕业设计:Python二手车智能数据分析与可视化决策平台 Django框架 可视化 线性回归 数据分析 机器学习 深度学习 AI 大模型(建议收藏)✅
  • 用 Win32 API MCP Tool 打通桌面环境控制链路,兼谈 DМχΑРΙ
  • Obsidian Tag Summary插件完全指南:用标签玩出笔记系统的“黑科技感“
  • 20252820 2024-2025-2 《网络攻防实践》第4次作业
  • YimMenu终极指南:5分钟学会GTA5最强安全增强工具
  • JAVA重点基础、进阶知识及易错点总结(34)注解基础(Annotation)
  • OpenCV直线检测避坑指南:HoughLinesP参数调优实战(Python版)
  • Go语言的缓存策略与实现
  • S7-200 MCGS 基于PLC的小型水厂恒压供水系统 带解释的梯形图接线图原理图图纸,io分配
  • 全贴合工艺中Cover Lens Mura不良的关键影响因素与优化策略
  • 【RAG】【vector_stores003】Amazon Neptune - Neptune Analytics向量存储
  • AI率超80%不要慌,这样处理比自己改快10倍
  • 从零搭建WebRTC SFU服务器:基于Mediasoup的1080P视频会议部署教程
  • 告别重复敲命令:用Claude Code + mcp-ssh-manager实现一句话服务器部署(保姆级配置)
  • claw-code 源码详细分析:子系统目录地图——几十个顶层包如何用五条轴(会话 / 工具 / 扩展 / 入口 / 桥接)读懂?
  • 利用drawio高效绘制数据库ER图:从入门到精通
  • 跳点搜索算法(JPS)融合动态窗口法,JPS规划全局路径,动态窗口法执行动态避障
  • iOS开发者证书与p12文件:从零到一的安全部署指南
  • 【SV】从仿真器调度机制看非阻塞赋值与延迟控制的协同设计。理解NBA区域与Active事件的交互
  • 物联网设备上高德地图离线地图加载慢?5秒内快速加载的终极解决方案
  • COMSOL水力压裂岩石多裂隙损伤耦合模型及含离散裂隙Matlab建模文件
  • JAVA重点基础、进阶知识及易错点总结(35)注解与反射
  • 从零实践:利用aitodpycocotools精准评估小目标检测模型的APvt/APt/APs/APm
  • 四开关Buck-Boost双向DC-DC电源系统全套学习资料:STM32F334C8T6控制下...
  • 别再傻傻分不清了!一文讲透M-LAG与堆叠(iStack/CSS)的核心区别与选型指南
  • 【蓝桥杯】练习题目合集(自用)-4