hdu 5037 周期优化
生活随笔
收集整理的這篇文章主要介紹了
hdu 5037 周期优化
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
http://acm.hdu.edu.cn/showproblem.php?pid=5037
有只青蛙踩石子過河,河寬m,有n個(gè)石子坐標(biāo)已知。青蛙每次最多跳L。現(xiàn)在可以在河中再放一些石子,使得青蛙過河跳的次數(shù)最多。
青蛙是貪心的,如果它現(xiàn)在在cur位置跳不動(dòng)了,且它上一次所在位置為pre。那么God肯定要把新石子放在max(cur,pre+L)+1的位置。
使用模擬+周期優(yōu)化
#include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #include <string> #include <bitset> #include <map> #include <iostream> #include <algorithm> using namespace std; #define RD(x) scanf("%d",&x) #define RD2(x,y) scanf("%d%d",&x,&y) #define clr0(x) memset(x,0,sizeof(x)) typedef long long LL; const int maxn = 200005; int n,m,l,s[maxn]; int main (){int _,cas = 1;RD(_);while(_--){printf("Case #%d: ",cas++);RD(n);RD2(m,l);for(int i = 0;i < n;++i)RD(s[i]);sort(s,s+n);s[n++] = m;int ans = 0,pre = -l,cur = 0;for(int i = 0;i < n;++i){//cout<<i<<endl;int t = (s[i] - cur)/(l+1);pre += t*(l+1);ans += t*2;if(s[i] - pre <= l){cur = s[i];}else if(s[i] - pre > l){ans++;pre = cur + t*(l+1);cur = s[i];}}printf("%d\n",ans);}return 0; }
轉(zhuǎn)載于:https://www.cnblogs.com/zibaohun/p/4046820.html
總結(jié)
以上是生活随笔為你收集整理的hdu 5037 周期优化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tomcat绿色版启动startup.b
- 下一篇: 探秘腾讯Android手机游戏平台之不安