HDU5037 frog贪心
来源:互联网 发布:macbook air如何写编程 编辑:程序博客网 时间:2024/04/27 06:56
这题虽说不是很难,但在推理时实在把自己绕晕了。
这题采用贪心的作法。
我是从终点开始考虑的。
假设当前位置为cur,前一次走的位置为pre.
若此时pre-a[i]>l则下一步pre=cur,cur=pre-l-1;
否则cur=a[i];
下面的问题就是推出pre的通式,通过pre-a[i]<=l来解不得式。
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>#define maxn 200010int cmp(const void *a,const void *b){ return *(int*)b-*(int*)a;}int a[maxn];int T;int main(){ scanf("%d",&T); int tt=1; while(T--){ int n,m,l,i; scanf("%d%d%d",&n,&m,&l); a[0]=0; for(i=1;i<=n;i++) scanf("%d",&a[i]); qsort(a,n+1,sizeof(a[0]),cmp);int ans=1;int pre=m,cur=m-1;int x,y;for(i=0;i<=n;i++)if(pre-a[i]>l){x=1+ceil(2.0*(cur-l-a[i])/(l+1));y=ceil(2.0*(pre-l-a[i])/(l+1));if(x%2==0)x++;if(y%2==1)y++;if(x<y){ans+=x;pre=cur-(x-1)/2*(l+1);cur=a[i];}else{ans+=y;pre=pre-y/2*(l+1);cur=a[i];}}else cur=a[i]; printf("Case #%d: %d\n",tt++,ans); } return 0;}
0 0
- hdu5037 Frog 贪心
- HDU5037 frog贪心
- hdu5037 Frog --- 贪心
- hdu5037 Frog --- 贪心
- HDU5037-贪心(很好)-Frog
- hdu5037(贪心)
- HDU5037 贪心
- hdu 5037 Frog(贪心)
- 【贪心】 HDOJ 5037 Frog
- hdu 5037 Frog 贪心
- HDU 5037 FROG (贪心)
- hdu 5037 Frog(贪心)
- hdoj 5037 Frog【贪心】
- hdu 5037 Frog 【贪心】
- 2014北京网络预选赛1006(贪心)HDU5037
- uva 11157 Dynamic Frog (贪心)
- hdu 5037 Frog(贪心)
- hdu 5037 Frog (贪心)
- Python排序算法再理解
- [深入理解计算机系统] 计算机中的信息表示
- Errors running builder 'Android Resource Manager' on Project java.lang.NullPointerException
- 浅谈多线程,以及比较Thread类与Runable接口
- List 整理
- HDU5037 frog贪心
- Ubuntu12.04的NFS配置
- UIButton上使用UIEdgeInsetsMaketitle跟图片对齐
- iOS百度地图定位
- (2)ok6410学习之链接器脚本学习
- sfewfesfs病毒,LINUX用户们,你中了么?
- linux多线程--生产者消费者问题
- POJ2155
- 有关oracle VM virtualBox 装openindiana 如何联网