• 杭电女生赛1003


    题意:给一个序列,删除一个数,令这个序列的gcd最大

    思路:求出原始序列的gcd=g,然后从左边跑一遍gcd,如果gcd==c 标记 r,那么a[r] 肯定和前面某个数的gcd为 c , 再从r开始完前跑一遍求gcd,直到gcd==c,标记l,那么a[l]一定与后面(l到r区间)某个数的gcd为 c,所以可得 gcd(a[l],a[r])==c ,分别删除a[l] a[r] 求gcd 输出较大的

    PS:给的是任意序列,但是题目第一句话告诉我什么是互质序列是什么鬼,wa了一天以为给的是互质序列,要不是我狗哥提醒我这是中国人出题,不是cf,前面讲的互质序列可能没软用,我可能一辈子也想不到。。。。mdzz

    PPS:代码改得乱七八糟随便看看就好了。。。当然大佬都是前缀后缀搞出来的不用考虑互质不互质的问题

    AC代码:

    #include "iostream"
    #include "string.h"
    #include "string"
    #include "stack"
    #include "queue"
    #include "string"
    #include "vector"
    #include "set"
    #include "map"
    #include "algorithm"
    #include "stdio.h"
    #include "math.h"
    #define ll long long
    #define bug(x) cout<<x<<" "<<"UUUUU"<<endl;
    #define mem(a) memset(a,0,sizeof(a))
    using namespace std;
    const int N=1e5+100;
    int n,t,a[N],b[N];
    int main(){
        scanf("%d",&t);
        while(t--){
            scanf("%d",&n);
            for(int i=1; i<=n; ++i){
                scanf("%d",a+i);
                b[i]=a[i];
            }
            int c=a[1];
            for(int i=2; i<=n; ++i){
                c=__gcd(c,a[i]);
            }
            int g=a[1],l=1,r=n;
            for(int i=2; i<=n; ++i){
                if(g==c){
                    r=i-1;
                    break;
                }
                g=__gcd(g,a[i]);
            }
            g=a[r];
            for(int i=r-1; i>=1; --i){
                if(g==c){
                    l=i+1;
                    break;
                }
                g=__gcd(g,a[i]);
            }
            //cout<<l<<" "<<r<<endl;
            if(l==1) a[l]=a[l+1];
            else a[l]=a[l-1];
            if(r==1) b[r]=b[r+1];
            else b[r]=b[r-1];
            int ans1=a[1],ans2=b[1];
            for(int i=2; i<=n; ++i){
                ans1=__gcd(ans1,a[i]);
                ans2=__gcd(ans2,b[i]);
            }
            cout<<max(ans1,ans2)<<endl;
        }
        return 0;
    }
  • 相关阅读:
    关于HashMap初始化容量问题
    nohu和&
    (转)ShardedJedisPool的使用
    Mysql 索引问题-日期索引使用
    mysql 索引 大于等于 走不走索引 最左前缀
    tomcat开启https协议
    Hystrix的原理与使用
    Hystrix使用Commond的三种方式
    Redis 面试题(持续更新)
    如何进行用户访谈更容易获得全面而有效的信息
  • 原文地址:https://www.cnblogs.com/max88888888/p/6821117.html
Copyright © 2020-2023  润新知