首页 > 其他分享 >Codeforces Round #697 (Div. 3) G

Codeforces Round #697 (Div. 3) G

时间:2022-11-10 23:12:06浏览次数:45  
标签:cnt 697 int Codeforces Div 整除

G. Strange Beauty

观察性质 我们发现他就是一个单向的关系
要是我们3能被9整除 那我们来一个能整除9的 那么一定能整除3
就是这个性质
我们考虑dp
dp[i]表示我们以a[i]结尾的max
对于每一个数 我们只需要枚举他的因子即可

void solve(){
    int n;cin>>n;
    vector<int>a(n+1),cnt(N),pos(N);
    for(int i=1;i<=n;i++){
        cin>>a[i];
        cnt[a[i]]++;
    }
    sort(all(a));
    a.erase(unique(all(a)),a.end());
    for(int i=1;i<a.size();i++)pos[a[i]]=i;
    //dp[i]表示以i结尾的max
    vector<int>dp(n+1);
    int ans=0;
    for(int i=1;i<a.size();i++){
        int x=a[i];
        dp[i]=max(dp[i],cnt[x]);
        for(int j=1;j*j<=x;j++){
            if(x%j==0&&pos[j]&&x!=j)dp[i]=max(dp[i],dp[pos[j]]+cnt[x]);
            if(x%j==0&&pos[x/j]&&x/j!=x)dp[i]=max(dp[i],dp[pos[x/j]]+cnt[x]);
            ans=max(ans,dp[i]);
        }
    }
    cout<<n-ans<<endl;
}

标签:cnt,697,int,Codeforces,Div,整除
From: https://www.cnblogs.com/ycllz/p/16879161.html

相关文章

  • CodeForces - 708C Centroids
    题意:给出一棵有n个结点的树,对于每一个结点,如果任意删除一条边后再任意添加一条边能使这个结点成为这棵树的重心,则输出1;反之输出0。解:重心的特点:以重心为根节点时,其最大子......
  • Codeforces Round #617 (Div. 3) ABCD
    https://codeforces.com/contest/1296临时和Juang一起组队打的这场,本来定的分开打另一场,哈哈题目挺友好的,Juang70minAK了,我只写了四题,剩下的题目待补A.Arraywith......
  • Codeforces Round #702 (Div. 3) G
    G.OldFloppyDrive维护一个前缀和再维护一个单调的前缀和因为我们后面的数花费更大只有贡献更大的时候才会有用这样就好做了对于每个查询我们知道他最少的轮数肯定......
  • Codeforces Round #704 (Div. 2) D
    D.Genius'sGambit构造要是a>=k的构造很好想出来但是a+b-1>k&&k>a时其实也可以构造出来我们考虑让中间的一些1经过减法变成0然后到高位时再与低位的1相减例如:1111......
  • Codeforces Global Round 16 F | CF1566F Points Movement
    https://www.luogu.com.cn/problem/CF1566Fhttps://codeforces.com/contest/1566/problem/F这类有关线段的问题我通常都是先观察线段的包含/交对线段是否保留的影响,以约......
  • 指定div滚到到指定位置
    获取页面某一元素的绝对X,Y坐标varX=$('#ElementID').offset().top;varY=$('#ElementID').offset().left;获取相对(父元素)位置:varX=$('#ElementID').position(......
  • Codeforces Round #740 (Div. 1, based on VK Cup 2021 - Final (Engine)) B
    B.UptheStrip考虑dpdp[i]表示当前i位置的cnt考虑转移我们对于第一个操作显然只用维护一个后缀和即可dp[i]+=s[i+1]对于第二个操作也很简单我们知道i的值z除一......
  • Codeforces Round #715 (Div. 1) A
    A.BinaryLiterature我们观察发现就是找两个串要是最长公共子序列大于等于n的我们就一定可以构造出一个出来但是传统的最长公共子序列是n2的我们考虑一些特殊的性质......
  • JavaScript实现滚动条滚动给div加颜色
    实现原理当滚动的距离大于某一个元素到页面顶部的距离时候,给元素设置实现步骤1.获取某一个元素到页面顶部的距离2.如果距离大于零则给div加上颜色,如果等于0,即归位的时......
  • 为什么我们必须使用div?
    那么,为什么我们必须使用div?如果您查看Mozilla的html5元素列表,则每个元素都有语义,然后我们进入<div>并显示:“表示没有特殊含义的通用容器。......