首页 > 其他分享 >Codeforces Round 875 (Div. 2) A-D

Codeforces Round 875 (Div. 2) A-D

时间:2023-05-29 15:34:34浏览次数:41  
标签:idx int void 875 Codeforces ne ans Div

Codeforces Round 875 (Div. 2)


A. Twin Permutations

int a[N];
void solve(){
    int n=read();
    for(int i=1;i<=n;i++)a[i]=read();
    for(int i=1;i<=n;i++)cout<<n+1-a[i]<<' ';
    cout<<'\n';
    //puts(ans>0?"YES":"NO");
    //puts(ans>0?"Yes":"No");
}

B. Array merging

void solve(){
    int n=read(),last=0,len=0;
    vector<int>cnt1(n*2+5),cnt2(n*2+5);
    for(int i=1;i<=n;i++){
        int x=read();
        if(last==x){
            len++;
        }else {
            cnt1[last]=max(cnt1[last],len);
            len=1;
            last=x;
        }
    }
    cnt1[last]=max(cnt1[last],len);
    last=0,len=0;
    for(int i=1;i<=n;i++){
        int x=read();
        if(last==x){
            len++;
        }else {
            cnt2[last]=max(cnt2[last],len);
            len=1;
            last=x;
        }
    }
    cnt2[last]=max(cnt2[last],len);
    int ans=0;
    for(int i=1;i<=2*n;i++){
        ans=max(cnt1[i]+cnt2[i],ans);
    }
    cout<<ans<<'\n';
    //puts(ans>0?"YES":"NO");
    //puts(ans>0?"Yes":"No");
}

C. Copil Copac Draws Trees

int h[N], e[N], ne[N], idx, dep[N], id[N];
bool st[N];
void add(int a, int b,int we){
    e[idx] = b, ne[idx] = h[a], id[idx]=we, h[a] = idx ++ ;
}
void dfs(int u,int we){
    st[u] = true; 
    for (int i = h[u]; i != -1; i = ne[i]){
        int j = e[i],wn=id[i];
        if (!st[j]) {
            if(wn<we)dep[j]=dep[u]+1;
            else dep[j]=dep[u];
            dfs(j,wn);
        }
    }
}
void solve(){
    int n=read(),ans=0;
	idx = 0;
	memset(h, -1, sizeof h);
    for(int i=1;i<n;i++){
        int x=read(),y=read();
        add(x,y,i);
        add(y,x,i);
    }
    for(int i=1;i<=n;i++)st[i]=false;
    dfs(1,inf);
    for(int i=1;i<=n;i++){
        ans=max(ans,dep[i]);
    }
    cout<<ans<<'\n';
}

D. The BOSS Can Count Pairs

\(b[i]*b[j]<=2n\) 利用这一点去压缩时间复杂度

做法就是将\(pair\)按照\(a[i]\)的\(sort\)排序好后,枚举\(1\)到\(sqrt(2n)\),按照大小找可匹配的\(pair\)

时间复杂度:\(O(n\sqrt{2n})\)

int a[N];
PII p[N];
void solve(){
    int n=read(),ans=0;
    for(int i=1;i<=n;i++){
        a[i]=read();
    }
    for(int i=1;i<=n;i++){
        int y=read();
        p[i]={a[i],y};
    }
    sort(p+1,p+1+n);
    for(int i=1;i*i<=n*2;i++){
        vector<int>mp(n+1);
        for(int j=1;j<=n;j++){
            int x=p[j].first,y=p[j].second;
            int need=x*i-y;
            if(need>=1&&need<=n)ans+=mp[need];
            if(x==i)mp[y]++;
        }
    }
    cout<<ans<<'\n';
}

标签:idx,int,void,875,Codeforces,ne,ans,Div
From: https://www.cnblogs.com/edgrass/p/17440602.html

相关文章

  • CodeForces 1830C Hyperregular Bracket Strings
    洛谷传送门CF传送门每一步思路都非常自然的题。考虑先从一些简单的case入手。1.\(k=0\)设\(g_i\)为长度为\(i\)的合法括号串数。显然\(\foralli\nmid2,g_i=0\)。对于偶数的\(i\),这是一个经典问题,\(g_i\)就是第\(\frac{i}{2}\)项卡特兰数,因此\(g_i=\bi......
  • Codeforces Round #875 (Div. 2)
    CodeforcesRound#875(Div.2)bilibili:CodeforcesRound#875(Div.2)实况|完成度[4.01/6]A#include<bits/stdc++.h>usingll=longlong;usinguint=unsigned;usingnamespacestd;intTestCase;signedmain(){ for(scanf("%d",&......
  • Codeforces Round 875 (Div. 2) A~D
    CodeforcesRound875(Div.2)A~DA.TwinPermutations构造\(a[i]+b[i]=n+1\)voidwork(){ intn; cin>>n; rep(i,1,n){ intx; cin>>x; cout<<n-x+1<<""; } cout<<endl;}B.Arraymerging......
  • HTML中让上下两个div之间保持一定距离或没有距离
    这篇文章主要为大家详细介绍了HTML让上下两个DIV之间保持一定距离或没有距离,可以用来参考一下。1、若想上下DIV块之间距离,只需设定:在CSS里设置DIV标签各属性参数为0div{margin:0;border:0;padding:0;}这里就设置了DIV标签CSS属性相当于初始化了DIV标签CSS属性,这里设置margin外......
  • Educational Codeforces Round 149 (Rated for Div. 2)(A~F)
    A.GrasshopperonaLine题意:给出n,k,从0开始,每次可以加一个数,最快到达n需要,输出首先跳几次,然后每次跳多少,限制只有一个跳的长度不能整除k。分析:n%k,有余直接跳,没余数,先跳一个,再跳剩余的长度。代码:#include<cstring>#include<iostream>#include<algorithm>usingnamespac......
  • 29. Divide Two Integers刷题笔记
    参考的题解classSolution:defdivide(self,dividend:int,divisor:int)->int:positive=(dividend<0)is(divisor<0)dividend,divisor=abs(dividend),abs(divisor)res=0whiledividend>=divisor:......
  • Codeforces 1444E - Finding the Vertex
    非常神秘的一道题,当之无愧的*3500。首先考虑转化题意。考虑一种决策树,由于我们每次问一条边之后,相当于会根据信息删掉两个连通块中的一个,因此一种决策树实际上对应了原树的一棵边分树。而为了让最坏情况下的询问次数最少,我们目标实际上是最小化边分树的深度。考虑借鉴P5912JA......
  • Educational Codeforces Round 149 (Rated for Div. 2) 题解
    https://codeforces.com/contest/1837https://codeforces.com/contest/1837/problems利益相关:上紫祭。真的不要以为这道题放在F就不敢做。压线过题的感觉真好。ABC题都过水,就不写了。代码丢在这里:A:https://codeforces.com/contest/1837/submission/207156920B:https:......
  • 用fetch处理的流,放到div中会有样式丢失的问题
    最近在做fetch处理流的问题,发现接收到得流,在div中渲染得时候样式会丢失,特别是空格、换行之类得。为了解决问题去看看了css得样式处理发现css中有个属性white-space。然后就去看了这个属性的定义和取值情况。   在css中white-space属性用来控制容器的文本中带有空白符、制表......
  • 文字超过div容器的高度显示...
    我们一般遇到的场景为超过一行或者2行,3行等等显示...,但是对于div容器如果想实现超过div容器的高度才显示...,这该怎么实现呢我们知道,当div只有内部只有一个文字时此时空间足够,2个也是...那么第n个呢,所以思路来了,我们可以一直计算下去,知道超过容器高度为止代码如下:<html><bod......