• AtCoder Beginner Contest 174


    第一次 ak ABC,纪念一下。

    比赛链接:https://atcoder.jp/contests/abc174

    A - Air Conditioner

    #include <bits/stdc++.h>
    using namespace std;
    int main() {
        int n; cin >> n;
        cout << (n >= 30 ? "Yes" : "No");
    }

    B - Distance

    #include <bits/stdc++.h>
    using namespace std;
    int main() {
        int n, d; cin >> n >> d;
        int cnt = 0;
        for (int i = 0; i < n; i++) {
            int x, y; cin >> x >> y;
            if (1ll * x * x + 1ll * y * y <= 1ll * d * d) ++cnt;
        }
        cout << cnt << "
    ";
    }

    C - Repsept

    #include <bits/stdc++.h>
    using namespace std;
    int main() {
        int k; cin >> k;
        int ans = 1;
        for (int mod = 7; mod % k; mod = (mod * 10 + 7) % k)
            if (++ans > k) { ans = -1; break; }
        cout << ans << "
    ";
    }

    D - Alter Altar

    #include <bits/stdc++.h>
    using namespace std;
    int main() {
        int n; string s; cin >> n >> s;
        int ans = 0;
        int l = 0, r = n - 1;
        while (l < r) {
            if (s[l] == 'W') {
                while (r > l and s[r] != 'R') --r;
                if (r > l) {
                    ++ans;
                    ++l;
                    --r;
                }
            } else ++l;
        }
        cout << ans << "
    ";
    }

    E - Logs

    #include <bits/stdc++.h>
    using namespace std;
    const int N = 2e5 + 100;
    
    int n, k; 
    int a[N];
    
    bool ok(int mid) {
        int need = 0;
        for (int i = 0; i < n; i++) {
            need += (a[i] - 1) / mid;
        }
        return need <= k;
    }
    
    int main() {
        cin >> n >> k;
        for (int i = 0; i < n; i++) {
            cin >> a[i];
        }
        int l = 1, r = 1e9;
        while (r - l > 1) {
            int mid = (l + r) / 2;
            if (ok(mid)) r = mid;
            else l = mid;
        }
        cout << (ok(l) ? l : r) << "
    ";
    }

    F - Range Set Query

    原题P1972

    #include <bits/stdc++.h>
    using namespace std;
    const int N = 1e6 + 100;
    
    int a[N], bit[N], vis[N], ans[N];
    
    struct P{
        int l, r, pos;
    }p[N];
    
    void add(int pos, int val) {
        for (int i = pos; i <= N; i += i & (-i)) {
            bit[i] += val;
        }
    }
    
    int sum(int pos) {
        int ans = 0;
        for (int i = pos; i != 0; i -= i & (-i)) {
            ans += bit[i];
        }
        return ans;
    }
    
    int main() {
        int n, m; cin >> n >> m;
        for (int i = 1; i <= n; i++) {
            cin >> a[i];
        }
        for (int i = 1; i <= m; i++) {
            cin >> p[i].l >> p[i].r;
            p[i].pos = i;
        }
        sort(p + 1, p + 1 + m, [&] (P x, P y) {
            return x.r < y.r;
        });
        int r = 1;
        for (int i = 1; i <= m; i++) {
            for (int j = r; j <= p[i].r; j++) {
                if (vis[a[j]]) add(vis[a[j]], -1);
                add(j, 1);
                vis[a[j]] = j;
            }
            r = p[i].r + 1;
            ans[p[i].pos] = sum(p[i].r) - sum(p[i].l - 1);
        }
        for (int i = 1; i <= m; i++) {
            cout << ans[i] << "
    ";
        }
    }
  • 相关阅读:
    基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体基础
    用SignalR和Layui搭建自己的web聊天网站
    MySQL查看、修改字符集及Collation
    ASP.NET MVC中有四种过滤器类型
    一个简单的大转盘抽奖程序(附.NetCore Demo源码)
    网站统计中的访问信息收集的前端实现
    微信小程序实现按首字母检索城市列表
    微信小程序异步处理
    微信小程序下拉框
    node.js上传文件
  • 原文地址:https://www.cnblogs.com/Kanoon/p/13423584.html
Copyright © 2020-2023  润新知