AtCoder Beginner Contest 187 题解

A - Large Digits

按要求求出两个数的每位之和,进行比较即可。

时间复杂度 O(log(AB))

B - Gentle Pairs

枚举所有点对求斜率。

时间复杂度 O(N2)

int main() {
    ios_base::sync_with_stdio(false), cin.tie(0);
    int n;
    cin >> n;
    int x[1010], y[1010];
    int cnt = 0;
    for (int i = 0; i < n; ++i) {
        cin >> x[i] >> y[i];
    }
    for (int i = 0; i < n; ++i)
        for (int j = 0; j < n; ++j) {
            if (i != j)
                if (abs(y[i] - y[j]) <= abs(x[i] - x[j])) cnt++;
        }
    cout << cnt / 2 << "\n";
    return 0;
}

C - 1-SAT

用两个HashSet分别存储不带!和带!的字符串的纯字符部分,求两个HashSet的交集。若有交集,则输出其中任意一个字符串;否则按要求输出satisfiable

时间复杂度 O(N)

int main() {
    ios_base::sync_with_stdio(false), cin.tie(0);
    int n;
    cin >> n;
    string s;
    unordered_set<string> s1, s2;
    for (int i = 0; i < n; ++i) {
        cin >> s;
        if (s[0] == '!') s1.insert(s.substr(1));
        else
            s2.insert(s);
    }
    for (auto x : s1) {
        if (s2.count(x)) {
            cout << x << "\n";
            return 0;
        }
    }
    cout << "satisfiable\n";
    return 0;
}

D - Choose Me

将所有城镇按照2Ai+Bi降序排列,然后贪心选取即可。

时间复杂度 O(NlogN)

using ll = long long;
int main() {
    ios_base::sync_with_stdio(false), cin.tie(0);
    int n;
    cin >> n;
    vector<pair<ll, ll>> towns;
    ll sa = 0, sb = 0;  // T,A
    for (int i = 0; i < n; ++i) {
        int a, b;
        cin >> a >> b;
        towns.emplace_back(a, b);
        sa += a;
    }
    sort(towns.begin(), towns.end(), [](pair<ll, ll>& p, pair<ll, ll>& q) {
        return p.first * 2 + p.second > q.first * 2 + q.second;
    });
    for (int i = 0; i < n; ++i) {
        if (sa < sb) {
            cout << i << "\n";
            return 0;
        }
        sa -= towns[i].first, sb += towns[i].first + towns[i].second;
    }
    cout << n << "\n";
    return 0;
}

posted @   RioTian  阅读(78)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 全程不用写代码,我用AI程序员写了一个飞机大战
历史上的今天:
2020-03-24 力扣刷题总结之链表
点击右上角即可分享
微信分享提示

📖目录