首页 > 其他分享 >CF2013E prefix gcd

CF2013E prefix gcd

时间:2024-09-22 22:12:47浏览次数:8  
标签:gcd int work 最小 CF2013E prefix

给n个数,随意排序,所有前缀的gcd的和的最小值。

只想到gcd变化是log次的,所以枚举每个作为开头,然后找让gcd变小的接上。可是这样是\(O(n^2)\). 注意,最小的数要放最前面。

假设\(x,a_1,a_2....\) 和 \(a_1,a_2,x...\). (x是最小的)我们有\(x+gcd(a_1,x) \leq a_1\), 因为gcd的求法是\(a_1 - k*x\) (qaq脑残想不到)

 void work(){
  int n;
  cin>>n;
  int g = 0;
  for(int i = 1;i <= n; i++){
    cin>>a[i];
    g = gcd(a[i], g);
  }
  for(int i = 1;i <= n; i++)a[i] /= g;
  sort(a + 1, a + 1 + n);
  LL sum = 0;
  int cur = 0;
  for(int i = 1;i <= n; i++){
    int min_a = 1e9;
    int pos = -1;
    for(int j = i;j <= n; j++){
      if(gcd(cur, a[j]) < min_a){
        min_a = gcd(cur, a[j]);
        pos = j;
      }
    }
    assert(pos != -1);
    cur = min_a;
    if(cur == 1){
      sum += n - i + 1;
      break;
    }
    sum += min_a;
    swap(a[i], a[pos]);
  }
  cout<<sum * g<<endl;
}

标签:gcd,int,work,最小,CF2013E,prefix
From: https://www.cnblogs.com/dqk2003/p/18426011

相关文章

  • GBase GCDW warehouse相关权限
    GCDW中,warehouse相关权限有三个,MODIFY_WAREHOUSE、OPERATE_WAREHOUSE、USAGE_WAREHOUSE;对应功能如下:MODIFY_WARHEOUSE:允许角色创建,删除,启动,挂起,修改warehouse属性的权限。OPERATE_WAREHOUSE:允许角色使用warehouse资源执行sql的权限,同时如果目标warehouse正处于suspend......
  • GBase GCDW云数据仓库的租户和用户介绍
    【GCDW租户】GCDW实例需云用户注册GCDW租户成功后,GBASE云服务系统给租户分配独立的实例,同时创建租户的数据库根用户,根用户即为该实例的超户,拥有该实例的最高权限,租户可以通过根用户登录自己的实例管理数据,也可以根据业务安全需求创建不同权限的角色和用户来管理数据。每个......
  • Exgcd 和 Excrt 的一些推导
    Exgcd和Excrt的一些推导ExgcdExgcd是用来求解二元一次不定方程的算法,即\[ax+by=c\]根据贝祖定理,该方程有解当且仅当\(\gcd(a,b)\midc\),所以只用求解\[ax+by=\gcd(a,b)\]又因为\[\gcd(a,b)=\gcd(b,a\bmodb)\]可以先求解\[bx'+(a\bmodb)y'=\gcd(a,b)\]变形得\[......
  • P11036 【MX-X3-T3】「RiOI-4」GCD 与 LCM 问题
    P11036【MX-X3-T3】「RiOI-4」GCD与LCM问题题意描述给出\(a\),求一组构造\(b,c,d\)使得\(a+b+c+d=gcd(a,b)+lcm(c,d)\)同时需要保证\(b,c,d\le1634826193\)思路变量实在太多了,考虑先大胆消掉一个,令\(b=1\),此时问题简化为使得\(a+c+d=lcm(c,d)\)赛时真的没想出......
  • GCD Queries
    GCDQueries交互题。发现一个结论:对于三个数\(a,b,c\),我们询问\(ga=\gcd(a,c),gb=\gcd(b,c)\)。若\(ga=gb\),则\(c\not=0\)若\(ga>gb\),则\(b\not=0\)若\(ga<gb\),则\(a\not=0\)也就是说,进行两次询问可以排除掉一个位置,那么我们一共只需要进行\(2(n-2)\)次询......
  • 小小GCD、LCM拿下拿下
    目录最大公约数(GCD)最大公约数(GCD)求解:一、辗转相除法二、三目运算符三、位运算最大公约数(GCD)模板: 最大公约数(GCD)例题:最小公倍数(LCM)最小公倍数(LCM)求解:最小公倍数(LCM)模板:最小公倍数(LCM)例题:GCD、LCM是算法当中的基础之基础,分别对应最大公约数、最小公倍数,在算法竞赛......
  • Luogu P11036 GCD 与 LCM 问题 [ 蓝 ] [ 构造 ] [ 数论 ] [ adhoc ]
    LuoguP11036GCD与LCM问题:梦熊的题真是又神又逆天。思路观察到有个奇数的特殊性质,我们尝试从奇数构造入手。先来尝试带入极端数据,对于\(\gcd\),我们可以把\(b=1\)的情况先带进去看看。\[a+b+c+d=\gcd(a,b)+\operatorname{lcm}(c,d)\]\[a+1+c+d=1+\operatorname{lcm}(c,......
  • 如何快速求一个序列的gcd和lcm
    背景:教授在打某道关于序列gcd与lcm的题,但是看不懂题解,于是决定打表找规律;然而自己又懒得算数,于是写了个程序。使用说明:输入格式:nstra1a2...an,\(n\)为序列长度;str为操作种类,只有GCD和LCM;\(a\)为序列,其中所有元素都必须是自然数。如果输入不合法,程序会中断计算并返回错误......
  • CF1810G The Maximum Prefix 题解
    Description构造一个长度最多为\(n\)的数组\(a\),其每个元素均为\(1\)或\(-1\)。生成方式如下:选择任意整数\(k\in[1,n]\)作为\(a\)的长度。对于\(\foralli\in[1,k]\),有\(p_i\)的概率设\(a_i=1\),有\(1-p_i\)的概率设\(a_i=-1\)。在数列被生成后,计算\(s_i=a......
  • 题解:SP3109 STRLCP - Longest Common Prefix
    三倍经验:UVA11996JewelMagicP4036[JSOI2008]火星人题意维护一个字符串\(S\),支持以下操作:\(Q\i\j\):输出\(\operatorname{LCP}(S[i\dotsl],S[j\dotsl])\)\(R\i\char\):用\(char\)替换\(S\)的第\(i\)个字符\(I\i\char\):在\(S\)的第\(i\)......