牛客练习赛14 B:区间的连续段(倍增打表)
发布日期:2021-06-30 16:06:20
浏览次数:2
分类:技术文章
本文共 645 字,大约阅读时间需要 2 分钟。
dp[i][j]表示从位置 i 开始分 2^j 段的 结束点+1的位置 再进行倍增打表即可,具体看代码#includeusing namespace std;typedef long long ll;const int maxn=1000000+100;int dp[maxn][25];ll sum[maxn];int main(){ int n,m; ll k; scanf("%d%d%lld",&n,&m,&k); sum[0]=0; for(int i=1;i<=n;i++) scanf("%lld",&sum[i]),sum[i]+=sum[i-1]; for(int i=0;i<=21;i++) dp[n+1][i]=n+1; for(int i=n;i>=1;i--){ dp[i][0]=upper_bound(sum+1,sum+1+n,sum[i-1]+k)-sum; for(int j=1;j<=21;j++) dp[i][j]=dp[dp[i][j-1]][j-1]; } while(m--){ int l,r; scanf("%d%d",&l,&r); ll cnt=0; for(int i=21;i>=0;i--){ if(dp[l][i]<=r) cnt+=(1< r) printf("%lld\n",cnt+1); else printf("Chtholly\n"); }}
转载地址:https://kaven.blog.csdn.net/article/details/81391014 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月18日 16时15分38秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java常用类 String面试题
2019-04-30
Windows10下的powershell美化教程
2019-04-30
利用ffmpeg合并音频和视频
2019-04-30
solr修改schema文件(solr修改配置文件)
2019-04-30
select下拉框分组展示插件的使用--(select-mania插件的使用)
2019-04-30
Java Lambda表达式的应用--Stream API操作集合框架
2019-04-30
Myslq连接(JDBC)url属性的参数的设置
2019-04-30
关于Spring MVC与前端的交互
2019-04-30
大厂经典面试题:Redis为什么这么快?
2019-04-30
Android之Retrofit基本用法篇
2019-04-30
Netty与网络协议资料整理
2019-04-30
Golang 逃逸分析
2019-04-30
golang实现大数据量文件的排序
2019-04-30
golang中的time包
2019-04-30
2019NOIP D4题 加工领奖
2019-04-30
2021.5.19 JS高级第二天
2019-04-30
啊沙发沙发
2019-04-30
SpringBoot内置Tomcat配置参数
2019-04-30