Codeforces Round #735 (Div. 2)部分题解

Posted KaaaterinaX

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #735 (Div. 2)部分题解相关的知识,希望对你有一定的参考价值。

A
枚举相邻元素的乘积即可。

我的思路:贪心思维,对于任意一个区间,区间越大,最小值只可能缩小而不会增大。所以要求最大值,只需要枚举最小的合法区间。

B
观察到a中的元素没有任何规律,就觉得大概率这个题可能直接算不了。
但是k以及a中元素都有范围,两个a中的元素取|运算,结果不会超过 2 ∗ n 2*n 2n
所以显然 i ∗ j i * j ij 部分对整体结果影响更大(个人理解,cf上有详细证明),所以只需要枚举数组后面一截,最大值一定在里面。(我取了后1000个元素,反正过了,应该更小一点也行。)

C
对于任意一个数字 k k k,如果能出现在序列中,那么一定有 n n n ^ x x x = k =k =k ( x < = m ) (x<=m) (x<=m)

根据异或性质,可知 k k k ^ n = x n=x n=x,所以只需要找到最小的 k k k,令 k k k ^ n n n > = m + 1 >=m+1 >=m+1

所以进行贪心构造,从高位开始让 n n n m + 1 m+1 m+1进行比对,只要遇到同二进制位上 m + 1 m+1 m+1为1而 n n n为0就让 k k k的这一位为1,如果遇到同二进制位上 n n n为1而 m + 1 m+1 m+1为0,直接退出循环。

int main()
    int t;
    cin>>t;
    while(t--)
        ll n,m;
        cin>>n>>m;
        m++;
        ll ans=0;
        for(int i=30;i>=0;i--)
            int t1=(n>>i)&1;
            int t2=(m>>i)&1;
            if(t1==0&&t2==1)
                ans+=(1<<i);
            
            else if(t1==1&&t2==0)
                break;
            
        
        cout<<ans<<endl;
    

D
原来这里的子串的定义是一定要连续的一段。。
(一开始看错题了一点思路都没有,看了官方题解回头去看题,恍然大悟。)

关键就是奇数+偶数=奇数,所以把一段一样的分成两截,一截是奇数,一截是偶数即可。。

int main()
    int t;
    cin>>t;
    while(t--)
        int n;
        cin>>n;
        if(n==1)
            cout<<'b'<<endl;
            continue;
        
        if(n%2==0)
            for(int i=1;i<=n/2-1;i++)
                cout<<'a';
            
            cout<<"b";
            for(int i=1;i<=n/2;i++)
                cout<<'a';
            
            cout<<endl;
        
        else
            for(int i=1;i<=n/2;i++)
                cout<<'a';
            
            cout<<"bc";
            for(int i=1;i<=n/2-1;i++)
                cout<<'a';
            
            cout<<endl;
        
    

尝试写一下E吧,这分段的我从没写过。。

以上是关于Codeforces Round #735 (Div. 2)部分题解的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #735 (Div. 2)-C. Mikasa-题解

Codeforces Round #735 (Div. 2)-B. Cobb-题解

Codeforces Round #735 (Div. 2)-A. Cherry-题解

Codeforces Round #735 (Div. 2)-C. Mikasa-题解

Codeforces Round #735 (Div. 2)-B. Cobb-题解

Codeforces Round #735 (Div. 2)-A. Cherry-题解