因为本题的数据范围很小,所以可以预处理一个二维数组,O(1)查询,但是这是一道区间上的题,并且gcd有区间可加性,所以想到了用线段树来维护,然而此题并不用修改,ST表有着比线段树更小的常数。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <cstdlib>
#define LL long long
using namespace std;
int init(){int rv=0,fh=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-') fh=-1;c=getchar();}while(c>='0'&&c<='9'){rv=(rv<<1)+(rv<<3)+c-'0';c=getchar();}return rv*fh;
}
int n,m,num[1005],st[1005][15],powerr[15]={1,2,4,8,16,32,64,128,256,512,1024},logg[1005];
int gcd(int a,int b){return b?gcd(b,a%b):a;
}
int main(){freopen("in.txt","r",stdin);n=init();m=init();logg[0]=-1;//一定要初始化for(int i=1;i<=n;i++){logg[i]=logg[i>>1]+1;}for(int i=1;i<=n;i++){num[i]=init();st[i][0]=num[i];}for(int i=1;i<=10;i++){for(int j=1;j+powerr[i]-1<=n;j++){//这里的终止条件要写对st[j][i]=gcd(st[j][i-1],st[j+powerr[i-1]][i-1]);}}for(int i=1;i<=m;i++){int l=init(),r=init();printf("%d\n",gcd(st[l][logg[r-l+1]],st[r-powerr[logg[r-l+1]]+1][logg[r-l+1]]));//防止考虑不全,}fclose(stdin);return 0;
}

转载于:https://www.cnblogs.com/Mr-WolframsMgcBox/p/7868269.html

洛谷 [P1890] gcd区间相关推荐

  1. 洛谷 P1890 gcd区间

    P1890 gcd区间 题目提供者 洛谷OnlineJudge 标签 数论(数学相关) 难度 普及/提高- 题目描述 给定一行n个正整数a[1]..a[n]. m次询问,每次询问给定一个区间[L,R] ...

  2. 洛谷P2879 [USACO07JAN]区间统计Tallest Cow

    洛谷P2879 [USACO07JAN]区间统计Tallest Cow 题目描述 给出牛的可能最高身高,然后输入m组数据 a b,代表a,b可以相望,最后求所有牛的可能最高身高输出 输入输出格式 输入 ...

  3. 洛谷P3205合唱队——区间DP

    题目:https://www.luogu.org/problemnew/show/P3205 枚举点,分类为上一个区间的左端点或右端点,满足条件便+=即可: 注意不要重复(当l=2时). 代码如下: ...

  4. 洛谷 3205 合唱队 区间DP

    题目如下: 题目描述 为了在即将到来的晚会上有更好的演出效果,作为AAA合唱队负责人的小A需要将合唱队的人根据他们的身高排出一个队形.假定合唱队一共N个人,第i个人的身高为Hi米(1000<=H ...

  5. 洛谷P2568 GCD(莫比乌斯反演)

    传送门 这题和p2257一样--不过是n和m相同而已-- 所以虽然正解是欧拉函数然而直接改改就行了所以懒得再码一遍了2333 不过这题卡空间,记得mu开short,vis开bool 1 //minam ...

  6. 数论 GCD 最大公约数 欧拉函数经典题 洛谷 CF1295D Same GCDs Codeforces1295D

    ​前言 两个月了,我终于更了-- 这两个月忙(chen)于(mi)内(xiang)卷(le),现在终于出新文章啦,(也算兑现了当初的出数论题文章的承诺)~ 不说废话了,今天给大家介绍一道CF/洛谷上的 ...

  7. 洛谷 P1063 能量项链 区间dp

    洛谷 P1063 题意:在一串项链中,是环状的,第 i 颗珠子有两个能量a[i]和a[i+1],第i+1颗珠子有两个能量a[i+1]和a[i+2],可以合并两个珠子,得到a[i]*a[i+1]*a[i ...

  8. 洛谷 P1440 求m区间内的最小值

    题目描述 一个含有n项的数列(n<=2000000),求出每一项前的m个数到它这个区间内的最小值.若前面的数不足m项则从第1个数开始,若前面没有数则输出0. 输入输出格式 输入格式: 第一行两个 ...

  9. (树状数组+逆元)洛谷P5142 区间方差

    洛谷P5142 区间方差 (^ w ^) 题目背景 出题人并没有能力写有趣的题面-- 题目描述 对于一个长度为n的序列a1,a2,a3⋯ana_1,a_2,a_3\cdots a_na1​,a2​,a ...

  10. 【区间dp】洛谷 P1220 关路灯

    P1220 关路灯 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 有一排路灯,老张有一个初始位置,他要把所有路灯都关掉.每个路灯都有各自的功率和坐标,问你关掉所有路灯所消耗 ...

最新文章

  1. ​吐血整理:手拿几个大厂offer的秘密武器!
  2. 科大讯飞刘庆峰发表对未来10年AI三大判断
  3. Deepin安装Curl的方法
  4. 聊聊composer.lock
  5. Java反射基础(三)--Methods对象的使用
  6. 2020年IEEE Fellow刚刚揭榜!超70名华人入选,周伯文、叶杰平、陈宝权、熊辉等上榜!...
  7. python实现webrtc接入ipc_WebRTC音视频会议的优势
  8. 善用VS中的Code Snippet来提高开发效率
  9. chrome 41 空格 nbsp;
  10. html网页设计模板
  11. maya 阿诺德水晶材质_Maya自带Arnold中的Ai Standard Surface材质如何渲染透明贴图?...
  12. 花大价钱买十五年前的交换机架构的“分布式KVM坐席/数字KVM坐席”???
  13. 【CCF】小中大(C++)
  14. Python爬虫:7_BeautifulSoup4图片爬取
  15. 巨帧(jumbo frame)
  16. 一个简单的SQL注入攻击
  17. i 标签怎么关闭_中山不干胶标签生产厂家——飞盛条码标识技术
  18. 一个pom文件中出现了两个相同的依赖_在IDEA里解决maven的pom引用jar包冲突
  19. 前端小知识:控制台打印(console)- 模拟Java日志打印、表格形式打印美化输出对象、代码运行时间统计
  20. MySQL笔记:第07章_InnoDB数据存储结构

热门文章

  1. Dx unsupported class file version 52.0 Conversion to Dalvik format failed with error 1
  2. 编译器的不同,导致运行结果不一样
  3. LINUX下载及编译libtool
  4. 功能实施方案,不能由程序员做主,一定要经过高手确认
  5. WINDOWS各类执行程序的接口总结
  6. 公司设备损坏了,怎么处理
  7. oracle查看用户登录失败次数,​oracle查看用户登录失败次数及详细信息
  8. Java http响应状态码_如何获得HttpClient返回状态码和响应正文?
  9. linux boa post方式失败,移植boa出现的错误及解决方法
  10. java中try中的语句执行吗_Java异常try里面有return,finally代码会执行吗