hdu5726 rmq+二分
来源:互联网 发布:网络聊天室 编辑:程序博客网 时间:2024/06/16 23:44
GCD
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 3301 Accepted Submission(s): 1189
Problem Description
Give you a sequence of N(N≤100,000) integers : a1,…,an(0
#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1e5 + 10;ll a[maxn];ll dp[maxn][30];int Log[maxn];int n,m;ll gcd(ll x,ll y){ return x == 0?y:gcd(y%x,x);}void initRmq(){ Log[0] = -1; for(int i = 1; i <= n; i++) { Log[i] = (i&(i - 1)) == 0?Log[i - 1] + 1:Log[i - 1]; dp[i][0] = a[i]; } for(int j = 1; j <= 20; j++) { for(int i = 1; i + (1<<j) - 1 <= n; i++) { dp[i][j] = gcd(dp[i][j - 1],dp[i + (1<<(j - 1))][j - 1]); } }}ll Rmp(int l,int r){ int x = Log[r - l + 1]; return gcd(dp[l][x],dp[r - (1<<x) + 1][x]);}ll bi_search(ll x,int i){ int l = i; int r = n; int result = l; while(l <= r) { int mid = (l + r)>>1; ll term = Rmp(i,mid); if(term == x) { l = mid + 1; result = mid; } else r = mid - 1;; } return result;}int main(){ int T; scanf("%d",&T); int Case = 1; while(T--) { map<ll,ll> num; scanf("%d",&n); for(int i = 1; i <= n; i++) { scanf("%I64d",&a[i]); } initRmq(); for(int i = 1; i <= n; i++) { ll x = a[i]; ll loc = i; while(loc <= n) { ll loc1 = bi_search(x,loc); //cout<<loc1<<endl; num[x] += loc1 - loc + 1; loc1++; loc = loc1; x = gcd(x,a[loc]); } } int l,r; scanf("%d",&m); printf("Case #%d:\n",Case++); for(int i = 1; i <= m; i++) { scanf("%d%d",&l,&r); printf("%I64d %I64d\n",Rmp(l,r),num[Rmp(l,r)]); } } return 0;}
1 0
- HDU5726 GCD【RMQ+二分】
- hdu5726 rmq+二分
- hdu5726 GCD(gcd +二分+rmq)
- hdu5726 GCD(二分+RMQ)
- hdu5726 - GCD (RMQ + 二分)
- hdu5726 多校1 GCD【rmq+二分】
- RMQ hdu5289+hdu3183+hdu5726
- HDU5726 GCD 二分查找加RMQ 多校联赛第一场
- hdu5726 GCD st表 + 二分
- RMQ -ST ——hdu5726 GCD
- HDU5726
- hdu5726
- HDU5726
- hdu5726
- hdu5726
- POJ 2452 RMQ+二分
- hdu 3486 RMQ + 二分
- HDU 3603 二分+RMQ
- HTML5
- Git——Day3(Github Pages搭建个人网站)
- 总体性能-CPU性能占用
- 编程第十天
- opencv estimateRigidTransform解析
- hdu5726 rmq+二分
- Vue 实现懒加载
- 线程->锁->Condition肤浅析
- linux服务器启动系统提示welcome to emergency mode! (欢迎来到紧急模式)
- 不管是lua还是其它语言,该用结构体的用结构体,不要单独给一个table随便加一个字段
- Mac搭建MAMP(Apache24+MySQL+PHP70)
- Windows 10将很快允许用户在未安装应用之前首先进行体验
- Android touchEvent 事件在Window中的流程UML 序列图
- java&android格式化总结