首页 > 其他分享 >Codeforces Round 902 (Div. 2, based on COMPFEST 15 - Final Round)

Codeforces Round 902 (Div. 2, based on COMPFEST 15 - Final Round)

时间:2023-10-20 16:47:05浏览次数:33  
标签:902 based int Codeforces Final solve Round

\(D. Effects of Anti Pimples\)

对每个数字能到达的所有位置先预处理最大值,那么就代表选择这个数字之后真实的贡献,那么对这样的预处理值,最小值显然只有一种做法,为 \(2^0\) ,第二小的值应该可以与最小值一起选择,所以答案为 \(2^1\) ,以此类推之后,每个值乘上对应的2的幂次之后求和即可。

void solve(){
    int n=read();
    vector<int>a(n+1);
    for(int i=1;i<=n;i++){
        a[i]=read();
    }
    for(int i=1;i<=n;i++){
        for(int j=2*i;j<=n;j+=i){
            a[i]=max(a[i],a[j]);
        }
    }
    sort(a.begin()+1,a.end());
    mint ans=0,p=1;
    for(int i=1;i<=n;i++){
        ans+=p*(mint)a[i];
        p*=2;
    }
    cout<<ans<<'\n';
    //puts(ans>0?"YES":"NO");
    //puts(ans>0?"Yes":"No");
}

\(E. Autosynthesis\)

对每个 \(i\) 向自己的 \(a_i\) 建单向边。首先所有入度为 \(0\) 点都不能删掉,否则没人能指向他。同时,这些点的出点就需要被删去。那么不断这样操作,最后这张图上只剩下一些环。对每个环而言,长度需要为偶数。

void solve(){
    int n=read();
    vector<int>a(n+1),d(n+1);
    for(int i=1;i<=n;i++){
        a[i]=read();
        d[a[i]]++;
    }
    vector<int>col(n+1,-1),vis(n+1,0);
    queue<int>que;
    for(int i=1;i<=n;i++){
        if(d[i]==0){
            que.push(i);
            vis[i]=1;
        }
    }
    while(que.size()){
        int i=que.front();
        que.pop();
        if(col[i]<0){
            col[i]=1;
        }
        if(col[i]==1){
            col[a[i]]=0;
        }
        d[a[i]]--;
        if((!d[a[i]]||col[a[i]]==0)&&!vis[a[i]]){
            vis[a[i]]=1;
            que.push(a[i]);
        }
    }
    for(int i=1,j;i<=n;i++){
        if(d[i]){
            col[i]=1;
            d[i]=0;
            for(j=i;a[j]!=i;j=a[j]){
                col[a[j]]=!col[j];
                d[j]=0;
            }
            d[j]=0;
            if(col[i]==col[j]){
                cout<<-1<<'\n';
                return ;
            }
        }
    }
    int ans=0;
    for(int i=1;i<=n;i++){
        ans+=col[i];
    }
    cout<<ans<<'\n';
    for(int i=1;i<=n;i++){
        if(col[i]){
            cout<<a[i]<<" ";
        }
    }
}

标签:902,based,int,Codeforces,Final,solve,Round
From: https://www.cnblogs.com/edgrass/p/17777449.html

相关文章

  • Paper Reading: Sample and feature selecting based ensemble learning for imbalanc
    目录研究动机文章贡献本文方法基于聚类的分层随机欠采样特征选择样本和特征选择的集成学习基于随机森林的SFSHEL实验结果数据集和实验设置KEEL数据集的比较HeartFailure数据集的比较优点和创新点PaperReading是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限......
  • Codeforces Round 872 (Div. 2) B. LuoTianyi and the Table
    给一个\(n\timesm\)的矩阵和\(n\timesm\)个数,你需要把这些数填入矩阵。保证\[\sum_{i=1}^n\sum_{j=1}^m\left(\mathop{max}\limits_{1\leqx\leqi,1\leqy\leqj}a_{x,y}-\mathop{min}\limits_{1\leqx\leqi,1\leqy\leqj}a_{x,y}\right)......
  • Educational Codeforces Round 149 (Rated for Div. 2) C. Best Binary String
    给一个字符串\(s\)包含\(0,1,?\)。定义一个\(01\)串\(s\)的\(cost\)为:选择\(s\)的任意一个子段\([l,r]\)并\(reverse\)。将\(s\)变为一个非降序序列时的\(reverse\)最小次数即\(cost\)。你可以让\(s\)的\(?\)换成\(0/1\),使新\(s\)的\(cost\)......
  • QCN9024 Performance|WiFi6E TriBand Card DR9074 Achieving 1.3Gbps Speed in 5.28GH
    QCN9024Performance|WiFi6ETri-BandCardDR9074AchievesBlazing1.3GbpsSpeedin5.28GHz80MHzBWThroughputTestBoththeQCN9074andQCN9024areQualcommchips,andWallyschosethisplatformforthedevelopmentoftheTri-Bandcardduetoitsexcept......
  • GRLSTM:基于图的残差LSTM轨迹相似性计算《GRLSTM: Trajectory Similarity Computation
    2023年10月18日,14:14。来不及了,这一篇还是看的翻译。论文:GRLSTM:TrajectorySimilarityComputationwithGraph-BasedResidualLSTM(需要工具才能访问)Github: AAAI2023的论文。 摘要轨迹相似性的计算是许多空间数据分析应用中的一项关键任务。然而,现有的方法主要是......
  • Educational Codeforces Round 150 (Rated for Div. 2) B. Keep it Beautiful
    数组\(a=[a_1,a_2,\cdots,a_n]\)被称为是美丽的,如果可以将\([1,x]\)段移到\([x+1,n]\)段后面,\(x\geq0\),数组可以构成非降序。现在有一个数组\(a\)(一开始为空)和\(q\)个询问,第\(i\)个询问给一个正整数\(x_i\)。需要逐步执行以下操作。若\(x_i\)拼接......
  • Codeforces Round 884 (Div. 1 + Div. 2) B. Permutations & Primes
    给一个正整数\(n\),你需要构造一个\(n\)的排列\(p_1,p_2,\cdots,p_n\)。对于排列\(p\)的每个子段\([l,r]\),\(mex_{i=l}^{r}a_i\)的结果为质数的次数尽可能多。此处的\(mex\)最小排除值最低为\(1\)而非\(0\)。不难想到,小质数\(2,3\)容易构造。于是有......
  • Codeforces Round 882 (Div. 2) B. Hamon Odyssey
    给一个长为\(n\)的数组\(a_1,a_2,\cdots,a_n\)。定义\(f(l,r)=\&_{i=l}^{r}a_i\)。你需要对\(a\)进行分段,使得各段的\(f(l,r)\)之和最小。在各段\(f(l,r)\)之和最小的情况下,尽可能分出更多的段。输出满足上述条件下,\(a\)可分的段数。......
  • Codeforces Round 888 (Div. 3) C. Tiles Comeback
    有\(n\)块瓷砖和一个正整数\(k\),第\(i\)块瓷砖染色为\(c_i\)。一开始站在第\(1\)块瓷砖往,然后可以开始往右跳吗,到第\(n\)块瓷砖停止。你可以得到的路径长度\(p\)为你从\(1\)到\(n\)踩过瓷砖的数量。你需要确定是否存在一条长度为\(p\)的路径满足。\(k\mid......
  • Codeforces Round 893 (Div. 2) C. Yet Another Permutation Problem
    有一个\(gcd\)游戏,按以下步骤进行:选择一个\(n\)的排列\(p_1,p_2,\cdots,p_n\)。对于每个\(i\),\(d_i=gcd(p_i,p_{i\%n+1})\)排列\(p\)的\(score\)为数组\([d_1,d_2,\cdots,d_n]\)中不同数的个数。给一个\(n\),需要构造一个排列\(p\),使得\(sco......