跳石头
来源:互联网 发布:网络教育要多少钱 编辑:程序博客网 时间:2024/06/11 05:51
二分答案加贪心
和之前一个丢瓶盖一样,对去几个石子二分,去多了就取大了,去少了就取小了
#include<cstdio>#include<iostream>#include<cstring>#define ll long longusing namespace std;ll a[99999],n,m,l,dp[51999],f,d[99999];int check(int x){ int ans=0; int t=d[1]; for(int i=1;i<=n;i++) { if(t>=x){ t=d[i+1]; } else { ans++; t+=d[i+1]; } } return ans;}int main(){ scanf("%lld%lld%lld",&l,&n,&m); if(m==n||m==0){ printf("%lld",l); return 0; } a[0]=1; a[n+1]=l; for(ll i=1;i<=n+1;i++) { scanf("%lld",&a[i]); d[i]=a[i]-a[i-1]; } /*memset(dp,127,sizeof(dp)); for(ll i=1;i<=n+1;i++) for(ll j=1;j<=m;j++) for(ll k=1;k<=j;k++) { ll q=min(dp[j],a[i]-a[i-k]); ll w=min(dp[j-k],a[i+1]-a[i-k]); dp[j]=max(q,w); } printf("%lld",dp[m]);*/ int r=l,le=1; while(le<=r){ int mid=(le+r)>>1; int w=check(mid); //printf("%d ",w); if(w>m) r=mid-1; else le=mid+1; } printf("%d",r); }
阅读全文
0 0
- 跳石头
- 跳石头
- 跳石头
- 跳石头
- 跳石头
- 跳石头
- 跳石头
- 跳石头
- 跳石头
- 跳石头
- 【NOIP2015】day2_ 跳石头
- NOIp2015 跳石头
- [noip2015] 跳石头
- NOIP2015 跳石头 二分
- Noip2015 D2T1 跳石头
- NOIP 2015 跳石头
- 【NOIP2015】Day2T1 跳石头
- NOIP2015DAY2T1【跳石头】
- Spring启动后,立即执行需要的操作
- flex简单学习
- 跳石头
- Java NIO之非阻塞式
- 小白写C#数据库操作的那些坑
- 跳石头
- 网站优化----建设高性能网页
- SSM框架学习之(二)Mybatis——mapper开发
- maven配置远程仓库
- Tomcat8启动闪退问题的解决办法
- 客户端日志数据过多、C盘越来越小和局域网内客户端跟服务器连接经常断
- tensorflow官方教程
- Matlab xlswrite函数 服务器出现异常解决
- Html中代码换行造成空格间距如何解决