VP Educational Codeforces Round 47 (Rated for Div. 2)

news/2025/4/1 18:12:39/文章来源:https://www.cnblogs.com/maburb/p/18800856

A. Game Shopping

点击查看代码
void solve() {int n, m;std::cin >> n >> m;std::vector<int> a(n), b(m);for (int i = 0; i < n; ++ i) {std::cin >> a[i];}for (int i = 0; i < m; ++ i) {std::cin >> b[i];}int ans = 0;for (int i = 0, j = 0; i < n && j < m; ++ i) {if (b[j] >= a[i]) {++ ans;++ j;}}std::cout << ans << "\n";
}

B. Minimum Ternary String

题意:给你一个只包含\(0, 1, 2\)的数组,你可以交换相邻的\(1,0\)或者\(1, 2\),求可以得到的最小字典序。

我们可以把所有1都移动到一个2的前面,为了字典序最小,应该把这些1都移动第一个2前面。

点击查看代码
void solve() {std::string s;std::cin >> s;int n = s.size();std::string a, b;for (int i = 0; i < n; ++ i) {if (s[i] != '1') {a += s[i];} else {b += s[i];}}if (b.empty() || a.empty()) {std::cout << s << "\n";} else {for (int i = 0; i < a.size(); ++ i) {if (a[i] == '2') {a = a.substr(0, i) + b + a.substr(i);std::cout << a << "\n";return;}}std::cout << a + b << "\n";}
}

C. Annoying Present

题意:给你\(m\)\(x_i, d_i\),每次你选择一个位置\(p\),使得\(sum += \sum_{j=1}^{n} x_i + d_i \times |p - j|\)。求\(sum\)最大。

显然\(x_i\)与操作位置无关,直接加上\(n\)个。对于\(d_i\),如果它大于等于\(0\),我们希望它乘的数的和最大,如果小于\(0\),希望它乘的数的和最小,那么我们可以预处理找出可以得到的\(\sum_{j=1}^{n} |p - j|\)最大的位置和最小的位置。

点击查看代码
void solve() {int n, m;std::cin >> n >> m;std::vector<i64> x(m), d(m);i64 sum = 0;for (int i = 1; i <= n; ++ i) {sum += i - 1;}i64 max = sum, min = sum;for (int i = 2; i <= n; ++ i) {sum += i - 1 - (n - i + 1);max = std::max(max, sum);min = std::min(min, sum);}i64 ans = 0;for (int i = 0; i < m; ++ i) {std::cin >> x[i] >> d[i];ans += x[i] * n;if (d[i] >= 0) {ans += d[i] * max;} else {ans += d[i] * min;}}std::cout << std::fixed << std::setprecision(12);std::cout << (double)ans / n << "\n";
}

D. Relatively Prime Graph

题意:给你\(n\)个点,你要构造\(m\)条边,使得每条边\((u, v)\)都有\(gcd(u, v) = 1\),且图联通。

首先想要图联通,\(m\)至少是\(n-1\)
然后我们可以发现,\(1\)可以产生\(n-1\)条边,\(2\)可以产生\(n - \lfloor \frac{n}{2} \rfloor\)条边,于是我们可以猜测如果暴力找的话很快就能找到。

点击查看代码
void solve() {int n, m;std::cin >> n >> m;if (m < n - 1) {std::cout << "Impossible\n";return;}std::vector<std::pair<int, int>> ans;for (int i = 1; i <= n && ans.size() < m; ++ i) {for (int j = i + 1; j <= n && ans.size() < m; ++ j) {if (std::gcd(i, j) == 1) {ans.emplace_back(i, j);}}}if (ans.size() < m) {std::cout << "Impossible\n";} else {std::cout << "Possible\n";for (auto & [u, v] : ans) {std::cout << u << " " << v << "\n";}}
}

E. Intercity Travelling

题意:你要从\(1\)\(n\),每次移动花费\(a_s\)的代价,其中\(s\)是连续的不休息次数加一,每个点有\(\frac{1}{2}\)的概率让你休息,你在\(1\)号点已经休息过了。需要求出到达\(n\)的代价的期望乘上\(2^{n-1}\)

由于\(1\)是固定休息的,那么其它点关于休不休息有\(2^{n-1}\)可能,也就是期望的分母是\(2^{n-1}\),那么答案要求乘上这个相当于把它消去了。
那么我们可以每个\(a_i\)会贡献多少次,这个需要讨论一下,因为如果\(a_i\)\(pos\)得到,那么\([pos - i, pos - 1]\)都不能休息,其它\(n - i - 1\)个位置随便选,但\(1\)号点固定的,如果\(pos = i\),那么有\(n - i\)个位置随便选。那么就是两种情况加起来。
答案为\(\sum_{i=1}^{n} (2^{n-i} + (n - i) \times 2^{n-i-1}) \times a_i\)

代码省略取模类

点击查看代码
void solve() {int n;std::cin >> n;std::vector<int> a(n + 1);for (int i = 1; i <= n; ++ i) {std::cin >> a[i];}Z ans = 0;for (int i = 1; i <= n; ++ i) {ans += (power<Z>(2, n - i) + (n - i) * power<Z>(2, n - i - 1)) * a[i];}std::cout << ans << "\n";
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/908206.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jmeter性能测试(2)——插件和nmon

一、性能插件认识1.在jmeter中添加性能插件2.下载两个jar包和启动包3.存放路径 (1)路径1(2)启动插件(4)将所有插件添加到线程中 常用的性能指标插件 1. jp@gc - Bytes Throughput Over Time:不同时间吞吐量展示(图表) 聚合报告里,Throughput是按请求个数来展示的,比如…

jmeter性能测试(2)——实战

一、单接口性能测试(同一用户进行压力测试)POST http://49.233.201.254:8080/cms/manage/loginJump.do POST data:userAccount=admin&loginPwd=123456按100 压力测试(1)在线程中修改虚拟用户数线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数…

2025全国青少年信息素养大赛报名指南(内附报名全流程)

2025全国青少年信息素养大赛报名指南 (内附报名全流程)2025 年预估初赛在 28 万~32 万人次左右,今年竞争会比较激烈,大家提前备考,NOI官网发布了“关于参加CSP-J/S认证需符合年龄条件的公告”,报名参加CSP-J/S的被认证者在当年9月1日(不含)需满12周岁,包括第一轮和第…

Codeforces Round 1013 (Div. 3)(前5)

比赛链接 A:Olympiad Date 让我们开始一个数字计数器 cnt[i] ( 0≤i≤9) 3≤cnt[0],1≤cnt[1],2≤cnt[2], 1≤cnt[3],1≤cnt[5] 答案已找到。如果在计算所有数字之后,没有满足其中一个条件,则没有解决方案,答案为 0. 代码如下 #include <bits/stdc++.h> using namesp…

【题解】E - Replace

背景 这把报了 UnRated 从 E 开始看,于是非常惨烈的只拿下了 E。这个 2054 难度的题居然只有绿。E - Replace 题意 给你两个字符串 \(s,t\),你每次可以把 \(s\) 中的一种字符换成另一种,求把 \(s\) 变成 \(t\) 的最小操作数,可能无解。 思路 我们先考虑无解怎么判:可以得到…

质数筛——欧拉筛

欧拉筛 核心思想 和数只被它最小的质因数筛去 prime_number是当前小于i的所有质数集合 p是prime_number的元素,当没有找到最小质因数pi时,p是j的最小质因数,j可以被筛去,当找到最小质因数时就要退出循环,否则不能保证p是j的最小质因数 算法的时间复杂度:O(n),到n的所有和…

索引的分类

远离那些贬低你理想的人。狭隘的人经常如此,伟大的人会让你感觉自己也可以变好。 ——马克吐温按「数据结构」分类:B+tree索引、Hash索引、Full-text索引。 按「物理存储」分类:聚簇索引(主键索引)、二级索引(辅助索引) 按「字段特性」分类:主键索引、唯一索引、普通索引、前缀…

Linux基本使用-3

常用快捷键使用ctrl + c ==> 强制停止,结束当前命令运行或清空已输入命令ctrl + d ==> 退出登出,退出当前登录账户或退出程序history ==> 查看历史命令!命令前缀 ==> 自动匹配上一个命令ctrl + r ==> 搜索历史命令ctrl + a|e ==> 光…

评论夸一夸功能

评论夸一夸功能原文:https://www.tianyubk.com/863.html效果图1. 新建CSS文件 ​项目根目录/resouces/插件/小工具/评论​ (可以新建上述目录)新建 kuakua.css​ 文件 .kuakua-first-box {margin: auto;width: 440px;border-radius: 16px;bottom: auto;min-height: 10rem;le…

执行一条SQL请求的过程

远离那些贬低你理想的人。狭隘的人经常如此,伟大的人会让你感觉自己也可以变好。 ——马克吐温大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如…

pikachu-RCE

exec "ping" 注入方式和DVWA靶场 - Command Injection一致 exec "evel"通过代码可以看出用户输入的信息未经过任何过滤被直接执行 尝试传入phpinfo();

位运算的操作

代码展示: #include <iostream> using namespace std;int main() {int n, m;cin >> n >> m;while (m--) {int op;cin >> op;if (op == 1) {int x;cin >> x;cout << ((n >> x) & 1) << endl;} else if (op == 2) {int l, …