博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NOIP模拟题——LGTB与序列
阅读量:4361 次
发布时间:2019-06-07

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

LGTB 得到了一个序列,他想在这个序列中选择一个最长的连续子序列,使得这个子序列的最大公约数等于

1。请告诉他他能得到的最大长度,如果没有这样的序列,输出?1
输入
输入第一行包含一个整数n 代表序列大小
接下来一行,包含n 个整数a1, a2, ..., an,代表序列
对于50% 的数据,1 n 1000
对于100% 的数据,1 n 105 1 ai 109
输出
输出包含一个整数l,代表最长的连续子序列,如果无解请输出?1
样例
样例输入      样例输出
2               2

7 2

样例输入      样例输出
3               -1

2 2 4

 

找规律,若存在子序列最大公因数为1,则最大子序列就是原序列总长。

所以只用判断原序列是否满足,依次gcd。注意特判n=1(虽然我觉得这不可能,因为n=1不存在公因数,但数据有2个都是n=1。。)

 

1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 const int maxn=100005; 8 int a[maxn]; 9 int n;10 int gcd(int x,int y)11 {12 if(y==0)return x;13 return gcd(y,x%y);14 }15 int main()16 {17 freopen("seq.in","r",stdin);18 freopen("seq.out","w",stdout);19 scanf("%d",&n);20 for(int i=1;i<=n;i++)21 scanf("%d",&a[i]);22 if(n==1&&a[1]==1)23 {24 printf("1");25 return 0;26 }27 int k=a[1];28 int temp=1;29 while(temp

 

转载于:https://www.cnblogs.com/937337156Zhang/p/6069339.html

你可能感兴趣的文章
Proxy模式
查看>>
读书多些会怎样
查看>>
浏览器好用的技术
查看>>
HDU 2188------巴什博弈
查看>>
tp5任务队列使用supervisor常驻进程
查看>>
Xmind?
查看>>
spring+quartz 实现定时任务三
查看>>
day2-三级菜单
查看>>
linux下升级4.5.1版本gcc
查看>>
Beanutils
查看>>
FastJson
查看>>
excel4j
查看>>
Thread
查看>>
char * 与char []探究理解
查看>>
QT窗体显示在屏幕中间位置
查看>>
emmet使用技巧
查看>>
RPC-Thrift(二)
查看>>
MSSQL for Linux 安装指南
查看>>
【Golang 接口自动化08】使用标准库httptest完成HTTP请求的Mock测试
查看>>
前端必读:浏览器内部工作原理
查看>>