博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 5726(二分)
阅读量:7222 次
发布时间:2019-06-29

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

GCDTime Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1233    Accepted Submission(s): 382Problem DescriptionGive you a sequence of N(N≤100,000) integers : a1,...,an(0
/*难点在于计数,关键要发现gcd的递减性对于1到n的(l,r)对于固定的lgcd(l,r)>=gcd(l,r+1)对于固定的rgcd(l,r)<=gcd(l+1,r)因此可以不用逐一地进行计数方法为:枚举每一个左区间,对满足gcd(l,ri)的右区间进行二分查找跳跃着进行计数*/#include 
#include
#include
#include
#include
#include
#define scan1(x) scanf("%d",&x)#define scan2(x,y) scanf("%d%d",&x,&y)#define scan3(x,y,z) scanf("%d%d%d",&x,&y,&z)using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int Max=1e6+10;int dp[Max][30];map
vis;int A[Max];int gcd(int x,int y){ if(x
>1; d2=RMQ(i,mid); if(d2>=d1) l=mid+1,ans=mid; else r=mid-1; } if(vis.find(d1)!=vis.end()) vis[d1]+=(ans-nex)+1; nex=r+1; } } printf("Case #%d:\n",ca++); for(int i=1; i<=m; i++) { ans=RMQ(L[i],R[i]); printf("%d %lld\n",ans,vis[ans]); } } return 0;}

 

转载于:https://www.cnblogs.com/zsyacm666666/p/5689066.html

你可能感兴趣的文章
3、使用Lucene实现千度搜索
查看>>
【转载】NIO客户端序列图
查看>>
linux系统中如何查看日志(转)
查看>>
JavaScript的parseint()函数
查看>>
微信小程序 view 布局
查看>>
一步一步学Python(2) 连接多台主机执行脚本
查看>>
SUP (SAP Mobile SDK 2.2) 连接 Sybase SQL Anywhere sample 数据库
查看>>
流的压缩与解压缩函数
查看>>
Javascript 严格模式详解(转)
查看>>
AngularJS的Hello World
查看>>
日志池
查看>>
电子病历,到底是用BS还是CS
查看>>
Visual Studio (VSIX,项目模板 )制作
查看>>
两个人的荒岛
查看>>
机器学习经典书籍
查看>>
[nginx] nginx安装
查看>>
[转].NET 绘制 EAN13 (商品条码)
查看>>
【转】越狱的 iPhone、iPad 通过网站实现一键安装 ipa 格式的 APP 应用
查看>>
开发者的利器:Docker 理解与使用
查看>>
mybatis调用视图和存储过程
查看>>