博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ3873 : [Ahoi2014]拼图
阅读量:7025 次
发布时间:2019-06-28

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

如果答案在某个碎片内部,那么直接悬线法解决,时间复杂度$O(n\sum)$。

 

如果$n$比较大,那么$\sum$比较小。

求出每个点向上能延伸的长度,枚举每个点向上这条线段作为短板。

算出完全可选的碎片的长度之和以及不能完全选,左边右边最大次大延伸距离,更新答案。

时间复杂度$O(n\sum^2)$。

 

如果$n$比较小,那么暴力枚举上下边界,计算答案方法同上。

时间复杂度$O(n^2\sum)$。

 

总时间复杂度$O(n\sum\sqrt{n\sum})$。

 

#include
const int N=100010,M=320;int T,num,n,m,i,j,k,x,cnt,FL0,GL,FL1,FR0,GR,FR1,ans;inline void up(int&f0,int&g0,int&f1,int x,int y){ if(x>f0){f1=f0,f0=x,g0=y;return;} if(x>f1)f1=x;}inline void uans(int x){if(ans
f[j])f[j]=GL; }else w[j]=0,f[j]=1,g[j]=m,GL=j+1; for(GR=j=m;j;j--)if(!a[i][j]){ if(GR
x-1)f[k]=x-1; for(x=en[k];x>=st[k];x--)if(a[j][x])break; if(g[k]
f[j])f[j]=GL; }else w[j]=0,f[j]=1,g[j]=m,GL=j+1; for(GR=j=m;j;j--)if(!a[i][j]){ if(GR
=st[k];x--)if(w[x]

  

转载地址:http://nwlxl.baihongyu.com/

你可能感兴趣的文章
Android PackageManagerService详细分析
查看>>
Ubuntu_12.04 server amd64安装读取数据失败以及samba的配置
查看>>
读懂Oracle 10053事件
查看>>
android SD卡路径问题以及如何获取SDCard 内存
查看>>
我的友情链接
查看>>
原型模式与对象的拷贝
查看>>
一元二次方程的求解
查看>>
国外那些优秀的 Drupal 教程博客
查看>>
JavaScript强化教程——AngularJS 指令
查看>>
ubuntu登陆界面只有guest session的解决方法
查看>>
MongoDB分页以及复杂条件查询例子
查看>>
log4j.properties配置详解与实例
查看>>
简单了解:Openssl开源安全套接字协议
查看>>
「RAAS」又什么?气隙技术的发明加密货币安全
查看>>
CentOS 常用的命令
查看>>
出版业作家手稿成网络钓鱼***新目标
查看>>
使用elasticsearch1.5.2实现查找附近的人
查看>>
百度地图API简单应用——1.根据地址查询经纬度
查看>>
Linux初学者是否可以利用虚拟机来学习操作?
查看>>
wdcp nginx pathinfo rewrite 设置
查看>>