Codeforces1004(Div2 A-E)

目录

A. Adjacent Digit Sums

B. Two Large Bags

C. Devyatkino

D. Object Identification

E. White Magic


感觉这场整体都很神秘, 很符合cf特色.

A. Adjacent Digit Sums

题目链接:https://codeforces.com/contest/2067/problem/A

首先我们想到, 对一个数加 1 在不考虑进位时体现在数位和上其实也是加 1, 所以如果 y == x + 1 此时一定满足;

对于 y != x + 1 时, n至少个位是 9 , 这样加1出现进位才能使得数位和差大于 1;

这样 x 就会比 y 大 i * 9 - 1 (i为未知数) 我们只用枚举 i 即可.

void solve() {
    int x, y;
    cin >> x >> y;

    if (y == x + 1) {
        cout << "Yes\n";
        return;
    }

    for (int i = 1;i <= x / 9;i++) {
        if (y == x - 9 * i + 1) {
            cout << "Yes\n";
            return;
        }
    }

    cout << "No\n";
}

B. Two Large Bags

题目链接:https://codeforces.com/contest/2067/problem/B

通过题目我们可以知道, 对于大数无法平分给两个数组的情况, 我们可以利用小数加 1 这个条件来解决;

对于个数只有 0 或者 2 的元素我们无法再拆分, 而对于大于 2 的元素, 因为要满足加 1 这个条件我们必须剩两个平分两个数组,

所以我们贪心, 将剩下的全部加到后一个元素上, 最终如果剩下的数量为偶数则满足条件.</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值