zoukankan      html  css  js  c++  java
  • 联赛模拟测试9 A. 嚎叫响彻在贪婪的厂房

    题目描述




    分析

    一个序列是等差数列且公差不为1的条件就是各项差的绝对值的(gcd!=1)
    从前往后依次扫即可
    一定要判重

    代码

    #include<cstdio>
    #include<algorithm>
    #include<iostream>
    #include<cmath>
    #include<map>
    inline int read(){
    	int x=0,fh=1;
    	char ch=getchar();
    	while(ch<'0' || ch>'9'){
    		if(ch=='-') fh=-1;
    		ch=getchar();
    	}
    	while(ch>='0' && ch<='9'){
    		x=(x<<1)+(x<<3)+(ch^48);
    		ch=getchar();
    	}
    	return x*fh;
    }
    const int maxn=1e6+5;
    int gcd(int aa,int bb){
    	if(bb==0) return aa;
    	return gcd(bb,aa%bb);
    }
    int n,a[maxn];
    std::map<int,int> vis;
    int main(){
    	freopen("factory.in","r",stdin);
    	freopen("factory.out","w",stdout);
    	n=read();
    	for(int i=1;i<=n;i++){
    		a[i]=read();
    	}
    	int cnt=0,now,cs;
    	for(int i=1;i<=n;i++){
    		cnt++;
    		if(i==n) break;
    		now=std::abs(a[i]-a[i+1]);
    		vis[a[i]]=vis[a[i+1]]=cnt;
    		if(now<=1) continue;
    		i++;
    		while(1){
    			if(vis[a[i+1]]==cnt) break;
    			vis[a[i+1]]=cnt;
    			cs=std::abs(a[i]-a[i+1]);
    			if(cs<=1) break;
    			now=gcd(now,cs);
    			if(now<=1) break;
    			i++;
    		}
    	}
    	printf("%d
    ",cnt);
    	return 0;
    }
    
  • 相关阅读:
    sharepoint更新
    生成Log日志文件.NET
    sharepoint绑定
    sharepoint多表查询
    数据库导入
    sharepoint插入数据
    协方差矩阵求解算法分析
    .NET提供的加密算法概述
    掩耳盗铃之使用WebBrowser封装网页
    C#委托BeginInvoke返回值乱序问题
  • 原文地址:https://www.cnblogs.com/liuchanglc/p/13770361.html
Copyright © 2011-2022 走看看