博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Usaco2006 Nov]Bad Hair Day 乱发节
阅读量:6960 次
发布时间:2019-06-27

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

Time Limit: 2 Sec  Memory Limit: 64 MB

Submit: 1268  Solved: 625
[][][]

Description

Input

* Line 1: 牛的数量 N。

 * Lines 2..N+1: 第 i+1 是一个整数,表示第i头牛的高度。

Output

* Line 1: 一个整数表示c[1] 至 c[N]的和。

Sample Input

6
10
3
7
4
12
2
输入解释:
六头牛排成一排,高度依次是 10, 3, 7, 4, 12, 2。

Sample Output

5
3+0+1+0+1=5

HINT

Source

思路

是不是只有我是二分+st表做的QUQ

对于每头牛,二分它能看到的最远的牛即可;

O(nlogn)

代码实现

1 #include
2 #include
3 const int maxn=8e4+10; 4 inline int min_(int x,int y){
return x
y?x:y;} 6 int n,m; 7 long long ans; 8 int f[maxn][16]; 9 int qj(int l,int r){10 int q=log2(r-l+1);11 return max_(f[l][q],f[r-(1<
>1;17 if(qj(l,mid)>=now) r=mid;18 else l=mid+1; 19 }20 if(f[l][0]>=now) l--;21 return l;22 }23 int main(){24 scanf("%d",&n),m=log2(n);25 for(int i=1;i<=n;i++) scanf("%d",&f[i][0]);26 for(int j=1;j
n) f[i][j]=f[i][j-1];29 else f[i][j]=max_(f[i][j-1],f[i+(1<

 

转载于:https://www.cnblogs.com/J-william/p/8059521.html

你可能感兴趣的文章
All you should know about NUMA in VMware!
查看>>
java 版本SQLHelper
查看>>
Hyper-V中的VM如何使用Pass-through Disk
查看>>
黑马程序员—Java动态代理详解
查看>>
PHP发送HEAD方法请求
查看>>
OracleHelper[.Net 连接Oracle数据库的封装类]
查看>>
.net微信公众号开发——消息与事件
查看>>
动态网站维护基本命令
查看>>
透视表提取不反复记录(2)-每一个物品的全部分类
查看>>
基于jQuery/CSS3实现拼图效果的相册插件
查看>>
【问题解决】小数点前面不显示0的问题
查看>>
ios学习笔记(二)第一个应用程序--Hello World
查看>>
Maven学习总结(四)——Maven核心概念——转载
查看>>
怎么用CIFilter给图片加上各种各样的滤镜_2
查看>>
android:关于主工程和library project
查看>>
CodeForces 2A Winner
查看>>
Window环境配置Mongodb
查看>>
制作和unity调用动态链接库dll文件
查看>>
exsi6.0远程修改密码
查看>>
Header和Cookie相关内容
查看>>