博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【luogu2678】【niop2015】跳石头 [二分]
阅读量:5323 次
发布时间:2019-06-14

本文共 2487 字,大约阅读时间需要 8 分钟。

    

我错了我以后一定自己多造几组数据再提交 样例都是骗人的

1 #include
2 using namespace std; 3 #define rg register 4 const int N=50000+5,inf=1e9+7,mod=31011; 5 int l,n,m,a[N],dis[N],mx,mn,cnt; 6 bool use[N]; 7 inline int rd() 8 { 9 int x=0,w=0;char ch=0;10 while(!isdigit(ch)) w|=ch=='-',ch=getchar();11 while(isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();12 return w?-x:x;13 }14 15 bool jud(int x)16 {17 for(int i=0;i<=n;i++)18 {19 int tot=1;20 while(use[i+tot]) tot++;21 while(a[i+tot]-a[i]
n) return 0;26 }27 i+=tot;28 // fh=min(fh,a[i+tot]-a[i]);29 }30 return 1;31 }32 33 int main()34 {35 l=rd(),n=rd(),m=rd();36 mn=inf,a[0]=mx=0;37 for(rg int i=1;i<=n;i++) 38 {39 a[i]=rd();40 mn=min(mn,a[i]-a[i-1]);mx=max(mx,a[i]-a[i-1]);41 }42 mx=max(l-a[n],mx);43 int ans=0;44 while(mn<=mx)45 {46 cnt=0;47 int mid=(mx+mn)>>1;48 memset(use,0,sizeof(use));49 if(jud(mid)) mx=mid-1;50 else mn=mid+1;51 }52 printf("%d",mn);53 return 0;54 }
10昏 漏洞百出
  • 打着打着就忘了是求最大的最小距离
  • 然后忘了设置跳的边界
  • 是输出左界-1 QAQ ans=mid

  都这样了我还能过样例QAQ!!!

1 #include
2 using namespace std; 3 #define rg register 4 const int N=50000+5,inf=1e9+7,mod=31011; 5 int l,n,m,a[N],dis[N],mx,mn,cnt; 6 bool use[N]; 7 inline int rd() 8 { 9 int x=0,w=0;char ch=0;10 while(!isdigit(ch)) w|=ch=='-',ch=getchar();11 while(isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();12 return w?-x:x;13 }14 15 bool jud(int x)16 {17 for(int i=0;i<=n;i++)18 {19 int tot=1;20 while(use[i+tot]) ++tot;//如果被搬走了 那就到下一个石头21 while(a[i+tot]-a[i]
<=n+1)//不能跳过了22 {23 use[i+tot]=1;24 tot++,cnt++;25 if(cnt>m) return 0;26 }27 i+=(tot-1);//因为一次循环结束后它会+1 所得-128 }29 return 1;30 }31 32 int main()33 {34 l=rd(),n=rd(),m=rd();35 mn=inf,a[0]=mx=0,a[n+1]=l;36 for(rg int i=1;i<=n;i++) 37 {38 a[i]=rd();39 // mn=min(mn,a[i]-a[i-1]);40 // mx=max(mx,a[i]-a[i-1]);41 }42 // mx=max(l-a[n],mx);43 mx=l,mn=0;44 while(mn<=mx)45 {46 int mid=(mx+mn)>>1;47 memset(use,0,sizeof(use));48 cnt=0;49 if(jud(mid)) mn=mid+1;50 else mx=mid-1;51 }52 printf("%d",mn-1);53 return 0;54 }
100昏 二分

转载于:https://www.cnblogs.com/lxyyyy/p/10410332.html

你可能感兴趣的文章
hadoop2.6.0实践:004 启动伪分布式hadoop的进程
查看>>
12 生成器和生成器表达式
查看>>
bzoj2424: [HAOI2010]订货
查看>>
go语言reflect实验
查看>>
再谈AutoResetEvent和ManualResetEvent 之详细解说
查看>>
sql server日期与时间函数
查看>>
leetcode Minimum Depth of Binary Tree python
查看>>
IOS开发--动画篇-->计时定时器
查看>>
二月主题读书整理——元技能系列
查看>>
Howto: (Almost) Everything In Active Directory via C#
查看>>
HttpClient-get请求/Post请求/Post-Json/Header
查看>>
小G的城堡
查看>>
C#回顾 – 4.IEnumerable 集合
查看>>
1050. String Subtraction
查看>>
软件工程结对编程第一次作业
查看>>
listbox横向排列
查看>>
NodeOS操作系统
查看>>
大神教你如何解决Linux系统80端口被占用
查看>>
VIM GDB操作
查看>>
七、context command
查看>>