首页 > 其他分享 >Codeforces Round #646 (Div. 2) D交互

Codeforces Round #646 (Div. 2) D交互

时间:2023-01-09 14:46:30浏览次数:60  
标签:题意 奇数 int Codeforces cin ++ 646 Div 节点

A. Odd Selection

题意:

给定 n 个数,是否能选 k 个数和为奇数

分析:

和为奇数只有一种情况:n 个偶数 + k 个奇数( n 任意,k 为奇数)枚举奇数个数即可

void solve()
{
    a = b = 0;
    cin >> n >> k;
    for (int i = 1, x; i <= n; i++)
    {
        cin >> x;
        if (x & 1)
            a++;
        else
            b++;
    }
 
    bool f = false;
    for (int i = 1; i <= a; i += 2)
    {
        if (k - i <= b && k - i >= 0)
        {
            f = true;
            break;
        }
    }
    if (f)
        cout << "Yes" << endl;
    else
        cout << "No" << endl;
}

B. Subsequence Hate

题意:

给定 01 串,操作为 0 与 1 相互转化,要求最少的操作次数使任意子序列中不含010101

分析:

不含101以及010,所以只有所有的的0在一边,所有的1在一边这种情况,分别记录前缀01的个数枚举更新答案,最后再与改为全0和全1的操作次数取 min

void solve()
{
    mst(s1, 0), mst(s0, 0);
    idx0 = idx1 = 0;
    res = INF;
    cin >> s;
    s = " " + s;
    int len = s.size() - 1;
 
    for (int i = 1; i <= len; i++)
    {
        s1[i] = s1[i - 1], s0[i] = s0[i - 1];
        if (s[i] == '1')
        {
            idx1++;
            s1[i] = s1[i - 1] + 1;
        }
        else if (s[i] == '0')
        {
            idx0++;
            s0[i] = s0[i - 1] + 1;
        }
    }
 
    for (int i = 1; i <= len; i++)
    {
        int t1 = s1[i] - s1[0] + s0[len] - s0[i];
        int t2 = s0[i] - s0[0] + s1[len] - s1[i];
        res = min(res, min(t1, t2));
    }
    res = min(res, min(idx1, idx0));
    cout << res << endl;
}

C. Game On Leaves

题意:

给定 n 个节点的无根树。两名选手轮流操作,每次可以选择一个叶节点并删除它以及所有和它相连的边,删除节点 x 的选手胜利,判断先手是否有必胜策略。

分析:

必胜态:到最后 x 上有偶数条边

  • 特判:如果 x 刚开始就在叶子节点上,那么先手必然胜利
  • 这时我们可以知道,与 x 节点相连的边数一定 \(\geq 2\)。所以由于两个人都实行最优策略,所以到了仅剩下两条边与 x 相连时就只会开始删其他叶节点来保证必胜态
void solve()
{
    idx = 0;
    cin >> n >> k;
    for (int i = 1, a, b; i < n; i++)
    {
        cin >> a >> b;
        if (a == k || b == k)
            idx++;
    }

    if (idx < 2 || n % 2 == 0)
        cout << "Ayush" << endl;
    else
        cout << "Ashish" << endl;
}

D Guess The Maximums

不会捏,点链接看吧

标签:题意,奇数,int,Codeforces,cin,++,646,Div,节点
From: https://www.cnblogs.com/Aidan347/p/17036967.html

相关文章

  • Codeforces Round #842 (Div. 2)(B,D,E)
    CodeforcesRound#842(Div.2)(B,D,E)B题实在是没想到BB这个题大意是给你一个乱序的一到n的数,我们每次可以选择k个数,放到这个数组的最后面,问我们需要最少多少个操作可以......
  • Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Division by 0
    MySQL错误Cause:com.mysql.jdbc.MysqlDataTruncation:Datatruncation:Divisionby0错误原因:往数据库中插入一个除数为0的运算的结果;MySQL的sql_mode模式限制着一......
  • Educational Codeforces Round 141
    A.MakeitBeautiful他想要变美,我们按照题目说的做就行,通过判断我们发现如果在sort一遍后sort(a+1,a+1+n);if(a[1]==a[n]){cout<<"NO"<<"\n";......
  • B. Kolya and Tandem Repeat -- codeforces
    B.KolyaandTandemRepeathttps://codeforces.com/problemset/problem/443/B 思路如果补充字符长度k大于等于s长度,则新的字符串,一份两半,前半分包括s,可能包括部分补......
  • Codeforces 1671 F Permutation Counting 题解
    题目链接把\(p_i>p_{i+1}\)的位置个数称为间隔数首先想到一个暴力做法。从小到大挨个添加1-n中的每个数,注意到添加数i时,只能添加到当前序列的最后11个位置中,否则逆序对数......
  • 页面div垂直内容超出后,edge浏览器右侧没有自动出现滚动条
    搜索网上解决办法,是给父元素添加样式overflow-y:scroll;height:100vh;但此举只是给该父元素侧边添加滚动条,而且不好配合回到顶部这一效果 最后发现是在父组件的包裹......
  • CodeForces - 835C Star sky
    CodeForces-835CStarsky题解:二维前缀和二维平面上给你点和坐标,让你求总亮度,很容易想到二维前缀和,但是题目很抽象,又给了你一个时间,就是说,每过一个单位时间,它的亮度......
  • CodeForces - 1303D Fill the bag
    CodeForces-1303DFillthebag题解:二进制+思维首先我们发现这肯定与二进制有关,n的二进制形式肯定有1,所以我们去从低位到高位遍历n的二进制的时候,加入现在这一位是1,......
  • CodeForces - 1225C p-binary
    CodeForces-1225Cp-binary题解:二进制+思维由题意得:让我们求出K的最小值使得\(\sum_{i=1}^{k}2^{a^i}+p=n\)成立,将式子改变一下形式得到\(n-k*p=\sum_{i=1}^{k}2^......
  • Codeforces 1305 F Kuroni and the Punishment 题解 (随机算法)
    题目链接首先注意到每个数最多操作1次就能让他变成2的倍数,所以答案\(\len\)。如果我们能枚举[1,1e12]中所有的质数,并对每个质数p求出把数组中所有数都变成它的倍数的最少......