当前位置:首页 > 其他 > 正文内容

Codeforces Round 992 (Div. 2) 解题陈述

邻居的猫1个月前 (12-09)其他594

竞赛地址: https://codeforces.com/contest/2040

A. Game of Division

标题

https://codeforces.com/contest/2040/problem/A

题意

给你一个长度为 \(n\) 的整数数组 \(a_1, a_2, \ldots, a_n\) 和一个整数数组 \(k\)

两个玩家正在玩一个游戏。第一个玩家挑选一个索引 \(1 \le i \le n\) 。然后第二个玩家挑选不同的索引 \(1 \le j \le n, i \neq j\) 。假如 \(|a_i - a_j|\) 不能被 \(k\) 整除,则第一个玩家取胜。不然,第二位棋手取胜。

咱们扮演第一个玩家。确认是否或许取胜,假如或许,应该挑选哪个索引 \(i\)

数字 \(x\) 的绝对值用 \(|x|\) 表明,假如是 \(x \ge 0\) ,则等于 \(x\) ,不然等于 \(-x\)

思路

模仿

AC代码

点击检查代码
#define _USE_MATH_DEFINES // To use the definition of cmath

#include <bits/stdc++.h>

using namespace std;

using ll = long long;
using ld = long double;
using ull = unsigned long long;

// mp.reserve(1024), mp.max_load_factor(0.75);
// Used only for basic types, pair and tuple.
template<typename T>
struct custom_hash_base {
    size_t operator()(const T& x) const {
        static const size_t seed = chrono::steady_clock::now().time_since_epoch().count();
        return _Hash_bytes(&x, sizeof(x), seed);
    }
};

static const auto _ = []() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
#ifndef ONLINE_JUDGE
    freopen("../in.txt", "r", stdin);
#endif
    return nullptr;
}();

int nums[101], k;
int n;
int st[101];

inline void solve() {
    cin >> n >> k;
    memset(st, 0, sizeof(int) * (k + 1));
    for (int i = 1; i <= n; ++i) {
        cin >> nums[i];
    }
    for (int i = 1; i <= n; ++i) {
        bool flag = true;
        for (int j = 1; j <= n && flag; ++j) {
            if (i == j) continue;
            if (abs(nums[i] - nums[j]) % k == 0) flag = false;
        }
        if (flag) {
            cout << "YES\n" << i << "\n";
            return;
        }
    }
    cout << "NO\n";
}

int main() {
    int T;
    for (cin >> T; T > 0; --T) {
        solve();
    }
    return 0;
}

B. Paint a Strip

标题

https://codeforces.com/contest/2040/problem/B

题意

您有一个长度为 \(n\) 的零数组 \(a_1, a_2, \ldots, a_n\)

你可以对它进行两种操作:

  1. \(1 \le i \le n\)\(a_i = 0\) 之间挑选一个索引 \(i\) ,并将 \(1\) 赋值给 \(a_i\)
  2. 挑选一对索引 \(l\)\(r\) ,使得 \(1 \le l \le r \le n\)\(a_l = 1\)\(a_r = 1\)\(a_l + \ldots + a_r \ge \lceil\frac{r - l + 1}{2}\rceil\) ,并将一切 \(l \le i \le r\)\(1\) 赋值给 \(a_i\)

要使数组中的一切元素都等于 1,至少需求进行多少次序一种类型的运算?

思路

\(i\) 次序一种类型的运算,可掩盖的最大规模为第 \(i - 1\) 次的规模加1,再乘2。

先初始化每一个i的规模,再二分查找。

AC代码

点击检查代码
#define _USE_MATH_DEFINES // To use the definition of cmath

#include <bits/stdc++.h>

using namespace std;

using ll = long long;
using ld = long double;
using ull = unsigned long long;

// mp.reserve(1024), mp.max_load_factor(0.75);
// Used only for basic types, pair and tuple.
template<typename T>
struct custom_hash_base {
    size_t operator()(const T& x) const {
        static const size_t seed = chrono::steady_clock::now().time_since_epoch().count();
        return _Hash_bytes(&x, sizeof(x), seed);
    }
};

static const auto _ = []() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
#ifndef ONLINE_JUDGE
    freopen("../in.txt", "r", stdin);
#endif
    return nullptr;
}();

int n;
constexpr int N = 20;
ll st[N];

static const auto init= []() {
    st[1] = 1;
    for (int i = 2; i < N; ++i) {
        st[i] = (st[i - 1] + 1) << 1;
    }
    return 0;
}();

inline void solve() {
    cin >> n;
    int p = lower_bound(st + 1, st + N, n) - st - 1;
    while (st[p] < n) ++p;
    cout << p << '\n';
}

int main() {
    int T;
    for (cin >> T; T > 0; --T) {
        solve();
    }
    return 0;
}

C. Ordered Permutations

标题

https://codeforces.com/contest/2040/problem/C

  • time limit per test: 2 seconds
  • memory limit per test: 256 megabytes
  • input: standard input
  • output: standard output

Consider a permutation\(^{\text{∗}}\) \(p_1, p_2, \ldots, p_n\) of integers from \(1\) to \(n\). We can introduce the following sum for it\(^{\text{†}}\):

\[S(p) = \sum_{1 \le l \le r \le n} \min(p_l, p_{l + 1}, \ldots, p_r) \]

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=645

分享给朋友:

“Codeforces Round 992 (Div. 2) 解题陈述” 的相关文章

【译】为什么命名“它”为依靠特点(DependencyProperty)

【译】为什么命名“它”为依靠特点(DependencyProperty)

当咱们创立新的类和成员时,咱们花费了许多的时刻和精力是它们尽可能的好用,好了解,好发现。一般咱们会遵从.Net结构规划攻略,尤其是会不断地研讨这个新类与其他类,未来方案等内容之间的联系。 当命名依靠特点(DependencyProperty)和依靠目标(DependencyObject)的时分也是遵...

全球最大分类广告商的Karpenter实践:减负运维、削减中止、每月省21万(上)

全球最大分类广告商的Karpenter实践:减负运维、削减中止、每月省21万(上)

原文链接: https://medium.com/adevinta-tech-blog/the-karpenter-effect-redefining-our-kubernetes-operations-80c7ba90a599 编译:CloudPilot AI Adevinta 是国际最...

密码学许诺原理与使用 - 概览

密码学许诺原理与使用 - 概览

前语 作者:@warm3snow https://github.com/warm3snow 微信大众号:暗码运用技能实战 博客园主页:https://www.cnblogs.com/informatics/ 简介 许诺计划(Commitment Scheme)是一个重要的暗码学原语(crypto...

前海开源金银珠宝,前海开源金银珠宝混合a

前海开源金银珠宝,前海开源金银珠宝混合a

前海开源金银珠宝混合A基金(基金代码:001302)是前海开源基金管理有限公司旗下的一只基金。以下是该基金的详细信息:1. 基金概况: 基金名称:前海开源金银珠宝混合A 基金代码:001302 基金类型:混合型基金 基金经理:吴国清 基金规模:4.70亿元 成立日...

啥是区块链,什么是区块链?

区块链是一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。区块链(Blockchain)是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关...

django开源项目,构建高效Web应用的利器

1. djangoidcops: 简介:这是一个面向数据中心运营商的开源资源管理平台,包含数据中心、客户、机柜、设备、跳线、物品、测试、文档等模块,解决资源集中管理与数据可视化的问题。 项目地址:2. DjangoBlog: 简介:这是一个基于 Python 3.8 和 Djang...