Rabbits(跳兔子)
一些坑;
有的坑里面有兔子,有的没有;
坑按顺序排着;
边上的兔子两个兔子可以调到中间有坑的两个兔子之间;
问最多跳多少次;
结束状态是这些兔子之间没有坑了;
对于第一次跳跃,我肯定要拿离团体最近的那个两边
然后跳跃的位置为旁边兔子的旁边
比如 1 3 6 9
先拿1 跳跃到 位置4 ,样例变为 3 4 6 9
然后 3跳到5的位置····这样挨着跳,可以不浪费空间,尽量多跳
然后跳到 4 5 6 9
再用4跳到7
这样就会发现,每跳一次只减少一个空位
那么把几只兔子所有的中间空位加起来
进去刚开始第一只兔子隔掉的,那么就是可以玩几次
这个题目就是不知道从哪里开始跳的(两边都可以跳)
所以说
ans-=min(a[2]-a[1]-1,a[n]-a[n-1]-1)
#include<iostream> #include<algorithm> using namespace std; const int maxn=1e6+100; int a[maxn]; int main(){ int t; cin>>t; while(t--){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } int ans=0; for(int i=2;i<=n;i++){ ans+=(a[i]-a[i-1]-1); } int mi=min(a[2]-a[1]-1,a[n]-a[n-1]-1); cout<<ans-mi<<endl; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现